以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  关于sqlfind查找后赋值的问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=152593)

--  作者:yshiren
--  发布时间:2020/7/16 8:06:00
--  关于sqlfind查找后赋值的问题

各位老师好,最近发现用sqlfind查找到的行再对该行的其他列赋值的时候不起作用,用find查找到行可以正常赋值,很疑惑,请帮忙看一下哪个地方有问题?

对比代码如下:

Dim dr As DataRow
If Tables("表A").Rows(0)("序号") = 1 Then  \'判断是否加载了序号为1的列
    dr = DataTables("表A").Find("[序号] = 1")
    If dr IsNot Nothing Then
        dr("第三列") = "直接赋值"
    End If
Else
    dr = DataTables("表A").SQLFind("[序号] = 1")
    If dr IsNot Nothing Then
        dr("第二列") = "后台赋值"
    End If
End If
DataTables("表A").Save

当用sqlfind查找时,把查找的行加载后,发现该行并没有“后台赋值”,请问是什么原因?

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


--  作者:有点蓝
--  发布时间:2020/7/16 9:13:00
--  
SQLFind出来的是一个独立的行,和原表没有什么关系,需要单独保存

Dim dr As DataRow

If Tables("表A").Rows(0)("序号") = 1 Then  \'判断是否加载了序号为1的列
    dr = DataTables("表A").Find("[序号] = 1")
    If dr IsNot Nothing Then
        dr("第三列") = "直接赋值"
    End If
Else
    dr = DataTables("表A").SQLFind("[序号] = 1")
    If dr IsNot Nothing Then
        dr("第二列") = "后台赋值"
dr.save
    End If
End If
DataTables("表A").Save

--  作者:yshiren
--  发布时间:2020/7/16 9:43:00
--  
是的,非常感谢!