Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在更新所选行时避免C#中的sqlite错误?_C# - Fatal编程技术网

如何在更新所选行时避免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

我正在尝试在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 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语句格式错误的位置: