以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  SQLUpdate更新后台数据失败  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=193052)

--  作者:edisontsui
--  发布时间:2024/8/13 10:30:00
--  SQLUpdate更新后台数据失败
If e.DataCol.Name = "单价" Then
        Dim Filter As String = "[原材料] = \'" & e.DataRow("物料号") & "\'"
        Dim drs As List(Of DataRow) = DataTables("接头BOM").SQLSelect(Filter)
        For Each dr As DataRow In drs
            dr("单价") = e.DataRow("单价")
            dr("金额") = e.DataRow("单价") * dr("数量")
        Next
        DataTables("接头BOM").SQLUpdate(drs)       
End If

我执行上述datacolchanged代码时总是出现如下提示:SQLUpdate更新后台数据失败! 请问是什么原因呢?谢谢。

--  作者:有点蓝
--  发布时间:2024/8/13 10:39:00
--  
"接头BOM"是查询表还是数据表?

换种方式试试

If e.DataCol.Name = "单价" Then
        Dim Filter As String = "[原材料] = \'" & e.DataRow("物料号") & "\'"
DataTables("接头BOM").SQLreplacefor("单价",e.DataRow("单价"),Filter)
DataTables("接头BOM").SQLreplacefor("金额","[单价] * [数量]",Filter, true)    
End If

--  作者:edisontsui
--  发布时间:2024/8/13 14:21:00
--  
"接头BOM"是数据表
--  作者:有点蓝
--  发布时间:2024/8/13 14:43:00
--  
试试其它方式,如果不行,请上传实例测试
--  作者:edisontsui
--  发布时间:2024/8/15 10:43:00
--  
2楼的方法有效。谢谢。