【发布时间】:2019-07-16 07:40:37
【问题描述】:
我找不到我的数据库表没有更新的原因。下面是我的代码。
private void button1_Click(object sender, EventArgs e)
{
try
{
SqlConnection sqlConnection = new SqlConnection();
sqlConnection.ConnectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\Transitionday.mdf;Integrated Security=True";
sqlConnection.Open();
SqlCommand cmd = new SqlCommand("UPDATE Transitionday SET Busnumber ='" + label1.Text + "', DT1check1 = '" + dataGridView1[1, 0].Value + "' where Id = '" + textBox4.Text + "'", sqlConnection);
cmd.ExecuteNonQuery();
sqlConnection.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
this.Hide();
}
【问题讨论】:
-
您是否尝试过在
SELECT语句中直接针对数据库使用WHERE子句并检查它是否返回您期望的结果?您的代码也容易受到SQL injection 的攻击。 -
您在 Catch 块中没有收到任何错误。? DB 中为
DT1check1定义的DataType是什么? -
@Diado 嗯,
where和select表示像"SELECT Busnumber from Transitionday WHERE Busnumber ='" + label1.Text + "'";然后显示数据?微不足道的 qtn,但我对此并不陌生。 -
"SELECT * from Transitionday where Id = '" + textBox4.Text + "'"
-
如果该列是数字数据类型,在 ID 周围加上引号应该仍然可以正常工作。如果更新确实没有发生,那么我怀疑真正的问题可能是输入到 SQL 语句中的 ID 在数据库表中不存在。
标签: c# sql-server winforms