Foxtable(狐表)用户栏目专家坐堂 → 提取需要行的问题


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

主题:提取需要行的问题

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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
提取需要行的问题  发帖心情 Post By:2014/4/15 12:02:00 [只看该作者]

各位老师:请教一个问题如下

 

标准 数据 结果
1,2,3 1,2,6,8 ok
5,6,7  
2,3,5,9 ok
3,4,5,7 ok
1,6 ok
4,7  
5,6,9,7  
3,7 ok
在数据列中提取包含有标准列中的任意一个数的行,如结果所示

意思是在数据列中只要包含有我的标准列中的任意一个数字的行(可以是1,也可以是2、3),都需要提取数据列中的该行,请各位老师指教!


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


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

 比如代码可以这样写

 

 dim drs as list(of datarow) = Datatables("表A").select("数据 like '*a*' or 数据 like '*b*'")

 

 又或者,这样

 for each 标准

     for each 每一行

         '比较

     next

 next


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


加好友 发短信
等级:版主 帖子:1693 积分:12117 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/4/15 13:11:00 [只看该作者]

前后加个逗号,把数据范围固定  再查询,

 

 

Dim drs As List(of DataRow) = DataTables("表A").Select("','+ [数据] +','  like '%,1,%' or  ','+ [数据] +','  like '%,2,%'")


 


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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2014/4/15 13:36:00 [只看该作者]

两位老师,感谢指点,但我的标准列是变量,不是固定的1,2,3,请问在变量的情况下,怎么样才能提取相关的行呢?


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


加好友 发短信
等级:版主 帖子:1693 积分:12117 威望:0 精华:7 注册:2013/7/11 10:52:00
  发帖心情 Post By:2014/4/15 13:51:00 [只看该作者]

Dim str As String = "1,2,6"
Dim str1() As String = str.Split(",")
Dim str2 As String = "',' + [列名] + ','"
Dim Filter As String = str2 & "like '%," & str1(0) & ",%'"
For i As Integer =1 To  str1.Length - 1
    Filter = Filter & " or " & str2 & "like '%," & str1(i) & ",%'"
Next

Dim drs As List(of DataRow) = DataTables("表名").Select(Filter)
For Each dr As DataRow In drs
    Output.show(dr("列名"))
Next


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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2014/4/15 14:08:00 [只看该作者]

谢谢逛逛:您太牛了!


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


加好友 发短信
等级:版主 帖子:5246 积分:33163 威望:0 精华:8 注册:2013/1/17 21:28:00
  发帖心情 Post By:2014/4/15 14:13:00 [只看该作者]

If e.DataCol.Name = "第一列" AndAlso e.DataRow.IsNull(e.DataCol) = False Then
    For Each s As String In DataTables("表B").DataRows(0)("第一列").Split(",")     '取标准。
        For Each s1 As String In e.DataRow(e.DataCol).Split(",")
            If s = s1 Then
                e.DataRow("第二列") = "OK"
                Exit For
            End If
        Next
    Next
End If

 

= 最可靠,Like和Contains往往有误。


 回到顶部