gpt4 book ai didi

c# - 尝试使用代码将一行插入数据库,然后在单击按钮后显示该行(使用 CommandText)

转载 作者:搜寻专家 更新时间:2023-10-30 23:05:47 24 4
gpt4 key购买 nike

我正在尝试使用代码向数据库中插入一行,然后在单击按钮后立即显示该代码。我正在使用 C#。

comm.CommandText = "INSERT INTO Store (FirstName, LastName) Values ('" + txtFirstName.Text + "', '" + txtLastName.Text + "')";

上面的代码有效。但是,如果我添加以下代码(将起作用),它将不起作用:

comm.CommandText = "Select FirstName, LastName from Store";

单击按钮时,我想将行(包含刚刚从文本框中输入的信息)插入到表中,并将该新行显示到表单中(设置为查看表)。我试图让这两个命令同时工作,但只有第二个“命令”有效。

下面是周围的代码:

    protected void btnSubmit_Click(object sender, EventArgs e)
{
String testVar = txtFirstName.Text;

OleDbConnection conn = new OleDbConnection(); //where to find db
conn.ConnectionString = ConfigurationManager.ConnectionStrings["storeConnString"].ConnectionString; //long connection screen.
conn.Open();

OleDbCommand comm = conn.CreateCommand();
comm.Connection = conn;

comm.CommandText = "INSERT INTO Store (FirstName, LastName) Values ('" + txtFirstName.Text + "', '" + txtLastName.Text + "')";
comm.CommandText = "Select FirstName, LastName from Store";

OleDbDataReader reader = comm.ExecuteReader();

(我知道我需要使用参数,但我会在弄清楚之后再这样做。)

谢谢,布拉德

最佳答案

因为在这两行之后,您的INSERT 命令将不再分配给您的comm

comm.CommandText = "INSERT INTO Store (FirstName, LastName) Values ('" + txtFirstName.Text + "', '" + txtLastName.Text + "')";
comm.CommandText = "Select FirstName, LastName from Store";

CommandText 属性现在只有您的 SELECT 语句。只需使用 ExecuteNonQuery 执行您的 INSERT 查询然后使用 ExecuteReader 获取您的 SELECT 语句结果。

comm.CommandText = "INSERT INTO Store (FirstName, LastName) Values ('" + txtFirstName.Text + "', '" + txtLastName.Text + "')";
comm.ExecuteNonQuery();
comm.CommandText = "Select FirstName, LastName from Store";
OleDbDataReader reader = comm.ExecuteReader();

如您所说,您应该始终使用 parameterized queries .这种字符串连接对于 SQL 注入(inject)攻击是开放的。

并使用 using statement处理您的 OleDbConnectionOleDbCommandOleDbDataReader

using(OleDbConnection conn = new OleDbConnection(conString))
using(OleDbCommand comm = conn.CreateCommand())
{
// Execute your INSERT query here.
// Also check your INSERT is successfull or not.
// Assing your SELECT statement to your CommandText property
using(OleDbDataReader reader = comm.ExecuteReader())
{
//
}
}

关于c# - 尝试使用代码将一行插入数据库,然后在单击按钮后显示该行(使用 CommandText),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26700838/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com