如何在更新所选行时避免C#中的sqlite错误?
我正在尝试在win forms applications C#中的sqlite中编写一个表单更新选定行。 但仍然存在一个错误:如何在更新所选行时避免C#中的sqlite错误?,c#,C#,我正在尝试在win forms applications C#中的sqlite中编写一个表单更新选定行。 但仍然存在一个错误: SQL logic error near "ID": syntax error 我的代码部分: private void button4_Click(object sender, EventArgs e) { string Transport = "Update TransportMed set I
SQL logic error
near "ID": syntax error
我的代码部分:
private void button4_Click(object sender, EventArgs e)
{
string Transport = "Update TransportMed set Imię = "+textBox2.Text+", Nazwisko = " +textBox3.Text+", PESEL ="+textBox3.Text+"where ID = " + dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
ExcecuteQuery(Transport);
LoadData();
}
正如@jdweng所提到的,您需要在
where
前面留出一个空格:
string Transport = "Update TransportMed set Imię = " + textBox2.Text + ", Nazwisko = " + textBox3.Text + ", PESEL =" + textBox3.Text + " where ID = " + dataGridView1.SelectedRows[0].Cells[0].Value.ToString();
请注意,当前方法容易受到SQL注入攻击。您必须使用Sql参数来避免它。阅读此处的更多信息:在WHERE之前需要一个空格。在“使用参数”附近仍然有一个错误,否则在实际的命令文本传输后,您将左右出现语法错误和注入风险,以便我们可以看到actaul查询。DGV单元格中可能存在导致问题的额外字符。在“,”附近仍然存在错误。是否可以在消息框中打印
传输,或使用Debug.WriteLine()?它将帮助您查看SQL语句格式错误的位置: