带有78个单选按钮的调查表的C#MySql Insert或Upadte命令语法

带有78个单选按钮的调查表的C#MySql Insert或Upadte命令语法,c#,mysql,syntax,command,insert-update,C#,Mysql,Syntax,Command,Insert Update,我有一个C#Win表单,其中包括一个弹出面板,其中包含78个单选按钮。该调查有一个提交按钮,可将数据插入MySQL表中。点击事件背后的代码应该允许更新和插入(因为人们可能会分几个阶段填写调查)。我遇到的问题是MySQL INSERT命令似乎有语法问题,因为单击submit时会引发以下异常 我的INSERT语句当前为空 MySqlCommand cmd = new MySqlCommand("INSERT INTO central_db.azt_image VALUES ('" + Serial

我有一个C#Win表单,其中包括一个弹出面板,其中包含78个单选按钮。该调查有一个提交按钮,可将数据插入MySQL表中。点击事件背后的代码应该允许更新和插入(因为人们可能会分几个阶段填写调查)。我遇到的问题是MySQL INSERT命令似乎有语法问题,因为单击submit时会引发以下异常

我的INSERT语句当前为空

MySqlCommand cmd = new MySqlCommand("INSERT INTO central_db.azt_image VALUES ('" + SerialCombo.Text + "', '" + Global.cust_dfe + "', '" + EngImgcomboBx.Text + "', '" + SerialCombo.Text + "', '" + AssetLocTxtBx.Text + "', '" + AssetNameTxtBx.Text + "', '" + (ImgL1Pend.Checked ? "1" : "0") + "', '" + (ImgL2Pend.Checked ? "1" : "0") + "', '" + (ImgL3Pend.Checked ? "1" : "0") + "', '" + (ImgL4Pend.Checked ? "1" : "0") + "', '" + (ImgL5Pend.Checked ? "1" : "0") + "', '" + (ImgL6Pend.Checked ? "1" : "0") + "', '" + (ImgL7Pend.Checked ? "1" : "0") + "', '" + (ImgL8Pend.Checked ? "1" : "0") + "', '" + (ImgL9Pend.Checked ? "1" : "0") + "', '" + (ImgL10Pend.Checked ? "1" : "0") + "', '" + (ImgL11Pend.Checked ? "1" : "0") + "', '" + (ImgL12Pend.Checked ? "1" : "0") + "', '" + (ImgL13Pend.Checked ? "1" : "0") + "', '" + (ImgL14Pend.Checked ? "1" : "0") + "', '" + (ImgL15Pend.Checked ? "1" : "0") + "', '" + (ImgL16Pend.Checked ? "1" : "0") + "', '" + (ImgL17Pend.Checked ? "1" : "0") + "', '" + (ImgL18Pend.Checked ? "1" : "0") + "', '" + (ImgL19Pend.Checked ? "1" : "0") + "', '" + (ImgL20Pend.Checked ? "1" : "0") + "', '" + (ImgL21Pend.Checked ? "1" : "0") + "', '" + (ImgL22Pend.Checked ? "1" : "0") + "', '" + (ImgL23Pend.Checked ? "1" : "0") + "', '" + (ImgL24Pend.Checked ? "1" : "0") + "', '" + (ImgL25Pend.Checked ? "1" : "0") + "', '" + (ImgL26Pend.Checked ? "1" : "0") + "', '" + (ImgL1NA.Checked ? "1" : "0") + "', '" + (ImgL2NA.Checked ? "1" : "0") + "', '" + (ImgL3NA.Checked ? "1" : "0") + "', '" + (ImgL4NA.Checked ? "1" : "0") + "', '" + (ImgL5NA.Checked ? "1" : "0") + "', '" + (ImgL6NA.Checked ? "1" : "0") + "', '" + (ImgL7NA.Checked ? "1" : "0") + "', '" + (ImgL8NA.Checked ? "1" : "0") + "', '" + (ImgL9NA.Checked ? "1" : "0") + "', '" + (ImgL10NA.Checked ? "1" : "0") + "', '" + (ImgL11NA.Checked ? "1" : "0") + "', '" + (ImgL12NA.Checked ? "1" : "0") + "', '" + (ImgL13NA.Checked ? "1" : "0") + "', '" + (ImgL14NA.Checked ? "1" : "0") + "', '" + (ImgL15NA.Checked ? "1" : "0") + "', '" + (ImgL16NA.Checked ? "1" : "0") + "', '" + (ImgL17NA.Checked ? "1" : "0") + "', '" + (ImgL18NA.Checked ? "1" : "0") + "', '" + (ImgL19NA.Checked ? "1" : "0") + "', '" + (ImgL20NA.Checked ? "1" : "0") + "', '" + (ImgL21NA.Checked ? "1" : "0") + "', '" + (ImgL22NA.Checked ? "1" : "0") + "', '" + (ImgL23NA.Checked ? "1" : "0") + "', '" + (ImgL24NA.Checked ? "1" : "0") + "', '" + (ImgL25NA.Checked ? "1" : "0") + "', '" + (ImgL26NA.Checked ? "1" : "0") + "', '" + (ImgL1Comp.Checked ? "1" : "0") + "', '" + (ImgL2Comp.Checked ? "1" : "0") + "', '" + (ImgL3Comp.Checked ? "1" : "0") + "', '" + (ImgL4Comp.Checked ? "1" : "0") + "', '" + (ImgL5Comp.Checked ? "1" : "0") + "', '" + (ImgL6Comp.Checked ? "1" : "0") + "', '" + (ImgL7Comp.Checked ? "1" : "0") + "', '" + (ImgL8Comp.Checked ? "1" : "0") + "', '" + (ImgL9Comp.Checked ? "1" : "0") + "', '" + (ImgL10Comp.Checked ? "1" : "0") + "', '" + (ImgL11Comp.Checked ? "1" : "0") + "', '" + (ImgL12Comp.Checked ? "1" : "0") + "', '" + (ImgL13Comp.Checked ? "1" : "0") + "', '" + (ImgL14Comp.Checked ? "1" : "0") + "', '" + (ImgL15Comp.Checked ? "1" : "0") + "', '" + (ImgL16Comp.Checked ? "1" : "0") + "', '" + (ImgL17Comp.Checked ? "1" : "0") + "', '" + (ImgL18Comp.Checked ? "1" : "0") + "', '" + (ImgL19Comp.Checked ? "1" : "0") + "', '" + (ImgL20Comp.Checked ? "1" : "0") + "', '" + (ImgL21Comp.Checked ? "1" : "0") + "', '" + (ImgL22Comp.Checked ? "1" : "0") + "', '" + (ImgL23Comp.Checked ? "1" : "0") + "', '" + (ImgL24Comp.Checked ? "1" : "0") + "', '" + (ImgL25Comp.Checked ? "1" : "0") + "', '" + (ImgL26Comp.Checked ? "1" : "0") + "', '" + ImgNoteTxt.Text + "') ON DUPLICATE KEY UPDATE;", conn);

因为每次插入或更新都会为每一列指定一个值,所以我没有声明列标题。我不是MySQL专家(远非如此),我不确定问题是命令的结构还是语法。。。任何帮助都会收到,因为我已经为此挣扎了几天。

好的,所以我发现我的INSERT语句有问题。。。在INSERT语句之后使用重复密钥更新时的选项时,必须明确设置要更新的值,即

INSERT INTO some_database.some_table ( key, first_name, last_name, current_score) VALUES ("123", "John", "Doe", 69) ON DUPLICATE KEY UPDATE current_score=69;
一旦我明确列出了我希望在发现重复键时更新的列,INSERT语句就会正常工作


感谢您的评论,StackOverflow社区非常棒…

您应该始终使用参数化查询来避免和消除此类错误。在这种情况下,SQL注入是不可能的,因为所有数据都是根据从组合框中选择的序列号从另一个表中预插入的(文本框是只读的)。然而,参数化语句可能有助于解决错误,所以我将尝试一下。。。非常感谢。您不能将
cmd.CommandText
值发送到数据库,以便更容易地找出语法错误的原因吗?很好,请致电John。。。我倒进了一个消息框,字符串看起来没问题,但这里有一个剪报:所以真的不确定是什么引发了错误?