我找不到数据库表未更新的原因。下面是我的代码。
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();
}
答案 0 :(得分:0)
数据库中的Id列类型是什么?因为您的脚本假设其值需要用引号引起来。
"' where Id = '" + textBox4.Text + "'"
翻译为
where Id = 'whatItyped'
如果您的ID列是字符串(varchar,nvarchar)或guid,那么这是正确的。如果您的Id列是整数,则不正确。
如果不正确,则where Id = 'whatItyped'
将返回0个匹配,这意味着将更新0行。那不是错误,因此数据库或代码实际上并没有给您错误响应。
您需要使用脚本
where Id = 123
这意味着您的代码需要更改为
"' where Id = " + textBox4.Text
请注意,'
个字符已删除。