以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  为什么Find改成SQLFind下面代码不执行了  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=127168)

--  作者:ZJZK2018
--  发布时间:2018/11/7 14:36:00
--  为什么Find改成SQLFind下面代码不执行了
我把  Dim fdr As DataRow = DataTables("系统编号").Find(filt)中的Find改为SQLFind,代码不执行了,DataTables("系统编号")数据已加载进来。

        Dim filt As String = "1=1"
        Dim dcs() As String = {"工程名称","标段名称","单位工程"}
        For Each dc As String In dcs
            If dr.IsNull(dc) Then
                filt &= " And " & dc & " Is Null"
            Else
                filt &= " And " & dc & " = \'" & dr(dc) & "\'"
            End If
        Next
        Dim fdr As DataRow = DataTables("系统编号").SQLFind(filt)
        If fdr IsNot Nothing Then
            dr("项目系统编号") = fdr("项目系统编号")
        Else
            dr("项目系统编号") = Nothing
        End If


--  作者:有点甜
--  发布时间:2018/11/7 15:14:00
--  

sqlfind查找的是已经保存了的行,不会查找新增、修改的行的数据的,这一点要理解。

 

如果数据全部保存,还是找不到,就是sqlfind的条件问题。你各个列中,有没有不是字符列的?


--  作者:ZJZK2018
--  发布时间:2018/11/7 15:18:00
--  
工程名称列为备注型,  DataTables("系统编号")数据已经保存了,还是不行?
[此贴子已经被作者于2018/11/7 15:31:00编辑过]

--  作者:有点甜
--  发布时间:2018/11/7 15:30:00
--  

那就是sqlfind的条件问题。

 

1、你弹出条件看看,看是否正确;

 

2、你各个列中,有没有不是字符列的?

 

3、做个例子测试


--  作者:ZJZK2018
--  发布时间:2018/11/7 15:33:00
--  
如果工程名称列为备注型,如何操作?
[此贴子已经被作者于2018/11/7 15:33:50编辑过]

--  作者:有点甜
--  发布时间:2018/11/7 15:35:00
--  
以下是引用ZJZK2018在2018/11/7 15:33:00的发言:
如果工程名称列为备注型,如何操作?
[此贴子已经被作者于2018/11/7 15:33:50编辑过]

 

那就不可能有问题。实例发上来测试。