【发布时间】:2020-04-29 17:40:54
【问题描述】:
我需要在一个表中插入数据并使用添加按钮更新第二个表中的 id:
private void addButton_Click(object sender, EventArgs e)
{
con.Open();
cmd = new SqlCommand("Insert Into Rent(toolId, customerId, custName, Fee, date, dueDate) Values('" + toolIdComboBx.Text + "', '" + custIdTxtBx.Text + "', '" + custNameTxtBx.Text + "', '" + feeTxtBx.Text + "', '" + dateTimePicker2.Text + "', '" + dateTimePicker1.Text + "')", con);
dr = cmd.ExecuteReader();
if (dr.Read())
{
con.Close();
con.Open();
cmd = new SqlCommand("Update Inventory Set Available = 'No' Where ToolId = = '" + toolIdComboBx.Text + "' ");
cmd.ExecuteNonQuery();
}
con.Close();
DisplayData();
}
【问题讨论】:
-
如果您发布您遇到的任何错误或解释意外行为,这总是有帮助的。另外,请格式化您的代码,以便它实际上是可读的,并且所有这些都是神圣的请 parameterize your queries!!.
-
您应该只将 ExecuteReader 与 SELECT 一起使用。更新和插入都应该使用 ExecuteNonQuery
-
您希望通过从 INSERT 检查
dr.Read()的结果来完成什么?如果插入了一行,您是否只尝试更新?代码的意图不是很清楚。 -
学习参数化你的 sql 语句 - 以你使用的方式连接对 sql 注入开放。
-
我想建议使用实体框架。使用它,您将拥有更大的灵活性。
标签: c# sql-server sqlconnection sqlcommand