以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]sqlfind 和find 的区别?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=48470)

--  作者:bobolan521
--  发布时间:2014/3/29 17:26:00
--  [求助]sqlfind 和find 的区别?

 \'修改产品工序单价表
   
    Dim Cols1() As String = {"单件产品工序数量","单据编号","车间名称","工序名称","生产任务单号","数量","单价","金额","单价系数","核算单价","时间"}
    Dim Cols2() As String = {"单件产品工序数量","单据编号","车间名称","工序名称","生产任务单号","数量","单价","金额","单价系数","核算单价","时间"}
    For Each dr1 As DataRow In DataTables("表EE").Select("")
        Dim dr2 As DataRow
        dr2 = DataTables("产品工序单价明细表").SQLFind("生产任务单号 = \'" & dr1("生产任务单号") & "\' and 车间名称 = \'" & dr1("车间名称") & "\' and 工序名称 = \'" & dr1("工序名称") & "\'")
        If dr2 Is Nothing Then
            dr2 = DataTables("产品工序单价明细表").AddNew()
        Else
            \'\'\'\'修改数量,以及单价
            dr2("核算单价")=dr1("核算单价")
            dr2("数量")=dr1("数量")
                      \'
        End If
        For i As Integer = 0 To Cols1.Length -1
            dr2(Cols2(i)) = dr1(Cols1(i))
        Next
    Next

 

请大家帮我看一下这段代码,如果我把SQLFind 改成了 Find整段代就能正常执行了(不论新增行或者修改数据都可以),但如果是SQLFind的话,只能新增,修改的代码不起作用,请问一下是怎么回事


[此贴子已经被作者于2014-3-29 17:32:10编辑过]

--  作者:lsy
--  发布时间:2014/3/29 17:37:00
--  

SQLFind是从后台查找,也就是说,必需是已经保存的数据,才能查找出来,而Find是从DataTable中查找,不管是否已经保存,只要有,就可以查到。

楼主可以测试。


--  作者:bobolan521
--  发布时间:2014/3/29 17:43:00
--  
谢谢老师,我的表EE是保存好的,意思就是 如果表EE的数据在产品工序单价明细表中没有话,就新增,有的话,就更改数据,但是我的产品工序单价明细表不一定加载数据的。所以我想用SQLFIND,,产品工序单价明细表这张表全是保存的行,老师你看是不是代码也没有问题啊
[此贴子已经被作者于2014-3-29 17:44:13编辑过]

--  作者:lsy
--  发布时间:2014/3/29 18:02:00
--  
但看代码,不容易发现错误,上个例子吧。
--  作者:bobolan521
--  发布时间:2014/3/29 18:25:00
--  

谢谢哦,我自己发现问题在哪里了