将双号插入访问数据库c#

时间:2014-04-11 21:16:42

标签: c#

我使用此查询插入数据

cmd = new OleDbCommand("insert into avoir_note  values ('" + 
       comboBoxA.Text + "','" + comboBoxCM.Text + "','" + 
       comboBoxCE.Text + "','" + textBoxMat.Text + "'," +
       Convert.ToDouble(textBoxNote.Text)+ ",'" + 
       dateTimePickerDT.Text + "') ", Program.cn) 

如果我在textBoxNote中输入例子10它可以工作但是

如果我在textBoxNote中输入例子10,15,我会收到此错误 查询值的数量必须与目标字段数相匹配。 如果我在textBoxNote中键入例如10.15我得到此错误 输入字符串的格式不正确

2 个答案:

答案 0 :(得分:2)

首先,您不应该将值连接到查询中,您应该使用参数化查询。然后,您没有正确格式化值的问题。

错误消息的原因是您使用逗号作为小数分隔符格式化浮点数,但数据库期望它是句点。逗号使其成为两个单独的值而不是一个,因此值的数量与字段数不匹配。使用具有句点作为小数分隔符的区域性信息来格式化数字:

Convert.ToDouble(textBoxNote.Text).ToString(CultureInfo.InvariantCulture)

这将使代码现在正常工作,以便您可以在自己的时间内对查询进行参数化。该代码对于SQL注入攻击是敞开的,所以你绝对不应该以当前状态将它发布到生产中。

答案 1 :(得分:0)

如果我错了,请纠正我,但这是10,15用逗号!您需要使用点符号'。'。

错误消息表示它需要的参数数量与提供的参数数量不同,逗号将添加额外的参数!