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

本文关键字:CommandText 单击 然后 使用 按钮 显示 插入 代码 一行 数据库 | 更新日期: 2023-09-27 18:28:57

我正试图使用代码将一行插入数据库,然后在单击按钮后立即显示该代码。我正在使用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();

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

谢谢Brad

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

因为在这两行之后,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();

正如您所说,您应该始终使用参数化查询。这种字符串串联对SQL注入攻击是开放的。

并使用using语句来处理您的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())
    {  
       //
    }
}