Foxtable(狐表)用户栏目专家坐堂 → 求助,Update出错


  共有7573人关注过本帖树形打印复制链接

主题:求助,Update出错

帅哥哟,离线,有人找我吗?
晕了快扶我
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1207 积分:7230 威望:0 精华:0 注册:2013/3/4 18:02:00
求助,Update出错  发帖心情 Post By:2013/3/28 11:30:00 [显示全部帖子]

DatarowDeleting 事件里的

 

Dim cmd3 As New SQLCommand
cmd3.C
cmd3.CommandText="select 当前库存 from {产品资料子表} Where 料号 = '" & e.DataRow("OPN") & "'"
Dim kc As Integer = cmd3.ExecuteScalar
DataTables("临时采购入库单子表").LoadFilter = "采购单号 = '" & e.DataRow("采购单号") & "' And OPN = '" & e.DataRow("OPN") & "'"
DataTables("临时采购入库单子表").load
Dim count As Integer = DataTables("临时采购入库单子表").DataRows.Count
Dim dr As DataRow = DataTables("临时采购入库单子表").Find("[_Identify] = '" & e.DataRow("_Identify") & "'")
Dim count1 As Integer = DataTables("采购入库单子表").Select("[_Identify] = '" & e.DataRow("_Identify") & "'And 采购单号 = '" & e.DataRow("采购单号") & "' And OPN = '" & e.DataRow("OPN") & "'").Count
If dr Is Nothing AndAlso count = 0
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "Update {采购订单子表} SET 未交数 = 未交数 + '" & e.DataRow("数量_本次收") & "'where 采购单号 = '" & e.DataRow("采购单号") & "' And 料号 = '" & e.DataRow("OPN") & "'"
    cmd.ExecuteNonQuery()
ElseIf dr Is Nothing AndAlso count <> 0
    For Each mr As DataRow In DataTables("临时采购入库单子表").DataRows
        mr("数量_累收数") = mr("数量_累收数") - e.DataRow("数量_本次收")
        mr("数量_未收数") = mr("数量_订单数") - mr("数量_累收数")
        For Each cr As DataRow In DataTables("采购入库单子表").Select("[_Identify] <> '" & e.DataRow("_Identify") & "' And 采购单号 = '" & e.DataRow("采购单号") & "' And OPN ='" & e.DataRow("OPN") & "'")
            cr("数量_累收数") = mr("数量_累收数")
            cr("数量_未收数") = mr("数量_未收数")
        Next
    Next
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "Update {采购订单子表} SET 未交数 = 未交数 + '" & e.DataRow("数量_本次收") & "'where 采购单号 = '" & e.DataRow("采购单号") & "' And 料号 = '" & e.DataRow("OPN") & "'"
    cmd.ExecuteNonQuery()
ElseIf dr IsNot Nothing AndAlso count =1
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "Update {采购订单子表} SET 未交数 = 未交数 + '" & e.DataRow("数量_本次收") & "'where 采购单号 = '" & e.DataRow("采购单号") & "' And 料号 = '" & e.DataRow("OPN") & "'"
    cmd.ExecuteNonQuery()
    Dim cmd2 As New SQLCommand
    cmd2.C
    cmd2.CommandText = "Update {产品资料子表} SET 当前库存 ="' & kc - e.DataRow("数量_本次收") & "' where 料号 = '" & e.DataRow("OPN") & "'"
    cmd2.ExecuteNonQuery()
    dr.Delete
ElseIf dr IsNot Nothing AndAlso count >1
    For Each mmr As DataRow In DataTables("临时采购入库单子表").DataRows
        mmr("数量_累收数") = DataTables("临时采购入库单子表").Compute("sum(数量_本次收)","[_Identify] <> '" & e.DataRow("_Identify") & "' And 采购单号 = '" & e.DataRow("采购单号") & "' And OPN = '" & e.DataRow("OPN") & "'") - e.DataRow("数量_本次收")
        mmr("数量_未收数") = mmr("数量_订单数") - mmr("数量_累收数")
        For Each ccr As DataRow In DataTables("采购入库单子表").Select("[_Identify] <> '" & e.DataRow("_Identify") & "' And 采购单号 = '" & e.DataRow("采购单号") & "' And OPN ='" & e.DataRow("OPN") & "'")
            ccr("数量_累收数") = mmr("数量_累收数")
            ccr("数量_未收数") = mmr("数量_未收数")
        Next
    Next
    Dim cmd As New SQLCommand
    cmd.C
    cmd.CommandText = "Update {采购订单子表} SET 未交数 = 未交数 + '" & e.DataRow("数量_本次收") & "'where 采购单号 = '" & e.DataRow("采购单号") & "' And 料号 = '" & e.DataRow("OPN") & "'"
    cmd.ExecuteNonQuery()
    Dim cmd2 As New SQLCommand
    cmd2.C
    cmd2.CommandText = "Update {产品资料子表} SET 当前库存 ="' & kc - e.DataRow("数量_本次收") & "' where 料号 = '" & e.DataRow("OPN") & "'"
    cmd2.ExecuteNonQuery()
    dr.Delete
End If
Dim cmd1 As New SQLCommand
cmd1.C
Dim temp As Integer = DataTables("临时采购入库单子表").Compute("sum(数量_未收数)","采购单号 = '" & e.DataRow("采购单号") & "'") + DataTables("采购入库单子表").Compute("sum(数量_未收数)","采购单号 = '" & e.DataRow("采购单号") & "'")
If temp <>0
    cmd1.CommandText ="Update {采购订单主表} SET 结案 = 0 Where 采购单号 = '" & e.DataRow("采购单号") & "'"
    cmd1.ExecuteNonQuery()
ElseIf temp = 0
    cmd1.CommandText ="Update {采购订单主表} SET 结案 = 1 Where 采购单号 = '" & e.DataRow("采购单号") & "'"
    cmd1.ExecuteNonQuery()
End If

=========================

标红的代码出错,当前库存没有被刷新,出错提示如下:

.NET Framework 版本:2.0.50727.5466
Foxtable 版本:2012.11.29.1
错误所在事件:
详细错误信息:
System.Data.OleDb.OleDbException: 第 1 行: '=' 附近有语法错误。
   在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
   在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
   在 Foxtable.SQLCommand.ExecuteNonQuery()

 

查了半天没查出问题来,求解


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1207 积分:7230 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/28 11:41:00 [显示全部帖子]

以下是引用狐狸爸爸在2013-3-28 11:35:00的发言:
用Messagebox.show显示你合成的语句,一般就知道问题所在了

狐爸,这个UPdate的合成要怎么合成,真不懂

我这样定位过

Dim cmd2 As New SQLCommand
    cmd2.C

msgbox(0)
    cmd2.CommandText = "Update {产品资料子表} SET 当前库存 ="' & kc - e.DataRow("数量_本次收") & "' where 料号 = '" & e.DataRow("OPN") & "'"

msgbox(1)
    cmd2.ExecuteNonQuery()
1和2都能正确显示啊,难道是 cmd2.ExecuteNonQuery()这里出错?


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1207 积分:7230 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/28 11:53:00 [显示全部帖子]


图片点击可在新窗口打开查看此主题相关图片如下:1.jpg
图片点击可在新窗口打开查看

合成出来是这样的


 回到顶部
帅哥哟,离线,有人找我吗?
晕了快扶我
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1207 积分:7230 威望:0 精华:0 注册:2013/3/4 18:02:00
  发帖心情 Post By:2013/3/28 11:58:00 [显示全部帖子]

我知道了。。。

 "Update {产品资料子表} SET 当前库存 ='" & kc - e.DataRow("数量_本次收") & "' where 料号 = '" & e.DataRow("OPN") & "'"

单引号和双引号搞反了


 回到顶部