Foxtable(狐表)用户栏目专家坐堂 → 查询数据


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

主题:查询数据

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


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
查询数据  发帖心情 Post By:2017/10/10 17:53:00 [只看该作者]

想从好几个表中查询是否有某一个数据,怎么写代码简洁一些?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/10 17:57:00 [只看该作者]

Dim ts() As String = {"表A", "表B", "表C"}
For Each t As String In ts
    Dim fdr As DataRow = DataTables(t).Find("")
    If fdr IsNot Nothing Then
       
    End If
Next


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


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
  发帖心情 Post By:2017/10/11 15:20:00 [只看该作者]

这样还是得在代码中输入列名。
数据涉及的列比较多,所以想在整个表中查询,如何写代码?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/11 15:33:00 [只看该作者]

Dim ts() As String = {"表A", "表B", "表C"}
For Each t As String In ts
    Dim dt As DataTable = DataTables(t)
    For Each dc As DataCol In dt.datacols
        Dim fdr As DataRow = dt.Find("convert(" & dc.name & ",'System.String') = '" & 123 & "'")
        If fdr IsNot Nothing Then
            msgbox(3)
        End If
    Next
Next

 回到顶部
帅哥哟,离线,有人找我吗?
qaz
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
  发帖心情 Post By:2017/10/11 17:58:00 [只看该作者]

Dim ts() As String = {"表A", "表B", "表C"}
For Each t As String In ts
    Dim dt As DataTable = DataTables(t)
    For Each dc As DataCol In dt.datacols
        Dim fdr As DataRow = dt.sqlFind("convert(" & dc.name & ",'System.String') = '" & 123 & "'")
        If fdr IsNot Nothing Then
            msgbox(3)
        End If
    Next
Next
只是将Find改成sqlFind,怎么就查找不到了?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/11 21:14:00 [只看该作者]

多表、多列,尽量不要用sqlFind,不然多次使用sqlFind,效率很慢的。

 

Dim ts() As String = {"表A", "表B", "表C"}
For Each t As String In ts
    Dim dt As DataTable = DataTables(t)
    For Each dc As DataCol In dt.datacols
        If dc.IsString Then
            Dim fdr As DataRow = dt.sqlFind(dc.name & " = '" & 123 & "'")
            If fdr IsNot Nothing Then
                msgbox(3)
            End If
        End If
    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
qaz
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
  发帖心情 Post By:2017/10/13 10:21:00 [只看该作者]

找到数据后,想要只加载找到的行(数据源为外部数据源),应该如何写代码?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/10/13 10:33:00 [只看该作者]

Dim ts() As String = {"表A", "表B", "表C"}
For Each t As String In ts
    Dim dt As DataTable = DataTables(t)
    Dim idxs As String = "-1,"
    For Each dc As DataCol In dt.datacols
        If dc.IsString Then
            Dim fdr As DataRow = dt.sqlFind(dc.name & " = '" & 123 & "'")
            If fdr IsNot Nothing Then
                idxs = idxs & fdr("_Identify") & ","
                Exit For
            End If
        End If
    Next
    dt.LoadFilter = "[_Identify] in (" & idxs.trim(",") & ")"
    dt.load
Next

 回到顶部
帅哥哟,离线,有人找我吗?
qaz
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
  发帖心情 Post By:2017/10/13 11:20:00 [只看该作者]

好的,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
qaz
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:141 积分:1096 威望:0 精华:0 注册:2017/5/11 21:38:00
  发帖心情 Post By:2017/12/14 16:57:00 [只看该作者]

sqlFind只能查找到符合的一条数据,有时候符合的数据比较多,需要在查找到后,并将符合数据加载,应该怎么写呢?

 回到顶部
总数 12 1 2 下一页