以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助] 亲,这么写哪里不对了呢  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=34385)

--  作者:jiskin
--  发布时间:2013/6/6 17:09:00
--  [求助] 亲,这么写哪里不对了呢
If pf > "" Then
                    cmd1.commandText = "Select [库存数量] From {库存总表} Where [零件号] = \'" & pf & "\'"
                    cmd2.commandText = "Update {库存总表} Set [库存数量] = " & cmd1.ExecuteScalar() + dr("生产数量") & " Where [零件号] = \'" & pf & "\'"
                    cmd2.ExecuteNonQuery()
                    cmd3.CommandText = "DELETE FROM {出库表} WHERE 出库日期 = \'" & e.DataRow("装配物料出库完成日") & "\'and 零件号 = \'" & dr("零件号") & "\' and 出库数量 = \'" & dr("生产数量") & "\' And 物料去向 = \'" & dr("项目编号") & "\'"
                    cmd3.ExecuteNonQuery()
                    DataTables("出库表").RemoveFor("出库日期 = \'" & e.DataRow("装配物料出库完成日") & "\' and 零件号 = \'" & dr("零件号") & "\' and 出库数量 = \'" & dr("生产数量") & "\' And 物料去向 = \'" & dr("项目编号") & "\'")
                End If


--  作者:Bin
--  发布时间:2013/6/6 17:12:00
--  
出现什么错又不说.
--  作者:don
--  发布时间:2013/6/6 17:12:00
--  
看这标题,一身鸡皮.图片点击可在新窗口打开查看
--  作者:狐狸爸爸
--  发布时间:2013/6/6 17:16:00
--  

呵呵,楼主以为各位都是神。

 

图片点击可在新窗口打开查看


--  作者:狐狸爸爸
--  发布时间:2013/6/6 17:17:00
--  

先用这个,分析一下执行到那一行出错:

http://www.foxtable.com/help/topics/1485.htm

 

然后用MessageBox显示这一行所生成的sql语句,看看这个语句有何不妥。


--  作者:jiskin
--  发布时间:2013/6/6 17:18:00
--  
以下是引用Bin在2013-6-6 17:12:00的发言:
出现什么错又不说.

 

大哥 我以为我的代码有问题呢 你们一眼就能看出来~

 

报错:

.NET Framework 版本:2.0.50727.6400
Foxtable 版本:2013.5.26.1
错误所在事件:
详细错误信息:
标准表达式中数据类型不匹配。


--  作者:狐狸爸爸
--  发布时间:2013/6/6 17:19:00
--  

 

出库数量 = \'" & dr("生产数量") & "\'

 

应该是

 

出库数量 = " & dr("生产数量") & "

 

字符单引号,数量不用单引号。

 

参考:

 

http://www.foxtable.com/help/topics/1580.htm

 

 


--  作者:jiskin
--  发布时间:2013/6/6 17:20:00
--  
以下是引用狐狸爸爸在2013-6-6 17:17:00的发言:

先用这个,分析一下执行到那一行出错:

http://www.foxtable.com/help/topics/1485.htm

 

然后用MessageBox显示这一行所生成的sql语句,看看这个语句有何不妥。

狐爸 我是添加了 这两句才有这个错误出来的

cmd1.commandText = "Select [库存数量] From {库存总表} Where [零件号] = \'" & pf & "\'"

                    cmd2.commandText = "Update {库存总表} Set [库存数量] = " & cmd1.ExecuteScalar() + dr("生产数量") & " Where [零件号] = \'" & pf & "\'"
                    cmd2.ExecuteNonQuery()

--  作者:Bin
--  发布时间:2013/6/6 17:23:00
--  
如果你的库存数量是字符类型 那么应该把这句改为 

 cmd2.commandText = "Update {库存总表} Set [库存数量] = \'" & cmd1.ExecuteScalar() + dr("生产数量") & "\' Where [零件号] = \'" & pf & "\'"

添加单引号

如果是数字类型

那么参考7楼狐爸.

--  作者:jiskin
--  发布时间:2013/6/6 17:28:00
--  
明白点了 我去测试下 谢谢各位了