尝试使用代码将一行插入数据库,然后在单击按钮后显示该行(使用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
因为在这两行之后,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
语句来处理您的OleDbConnection
、OleDbCommand
和OleDbDataReader
类;
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())
{
//
}
}