【发布时间】:2014-06-09 18:22:11
【问题描述】:
当我尝试将数据插入数据库时,出现错误,称为“将数据类型 varchar 转换为数字时出错”
这是我的代码
objcon.DoExecute("INSERT INTO OrderItemF
VALUES('" & dgOrder.Item("Item No", i).Value & "'
,'"& dgOrder.Item("Item Type", i).Value & "'
,'" & txtOdrNo.Text & "'
,'" & dgOrder.Item("Unit Price", i).Value & "'
,'" & dgOrder.Item("Quantity", i).Value & "'
,'" & dgOrder.Item("Discount", i).Value & "'
,'" & dgOrder.Item("Total Value", i).Value &
"')"
)
我正在从名为 dgorder 的数据网格查看器中插入数据
【问题讨论】:
-
这意味着某些列需要一个数字并且您正在传递文本 -
txtOdrNo.Text看起来可能是一个数字,使用Convert.ToInteger或Integer.TryParse转换它,具体取决于它是什么以及在哪里它来自。其他看起来像值,但您正在使用刻度将它们转换为字符串 -
您最好放弃
objcon.DoExecute方法并使用SQL 参数通过SQL 查询传递值。 -
...我怀疑您打开连接一次并保持打开状态。这不是推荐的方式;相反,打开连接,执行查询,关闭连接。
-
我尝试将字符串转换为整数,但我仍然收到一条错误消息,提示“值不能为空。参数名称:字符串”这是我的覆盖 ('" & System.Int32.Parse(dgOrder .Item("总价值", i).Value) & "')