以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [讨论][推荐][分享]利用FindRow进行查找,输出找到内容方法  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=41085)

--  作者:反思
--  发布时间:2013/10/10 22:55:00
--  [讨论][推荐][分享]利用FindRow进行查找,输出找到内容方法
利用FindRow进行查找,将找到的输出找到的内容和位置

With CurrentTable
    Dim dr As DataRow    
    Dim r As Integer
    Output.show(.Position)
    r = .FindRow("[第一列] Like \'*湛江*\'", .Position + 1, True ) \'从当前行开始查找
    Output.show(r)
    If r >= 0 Then \'如果找到的话
        .Position = r \'定位到找到的行.
        Output.show(r)\'输出找到的位置
        dr = DataTables("aaa").DataRows(r) \'输出找到的字段
        Output.show(dr("第一列"))
    End If
End With

除了此办法是否还有更简洁的方法,如果要输出所有找到的内容是否需要增加一个循环。

--  作者:有点甜
--  发布时间:2013/10/10 23:31:00
--  
 参考select方法。


--  作者:程兴刚
--  发布时间:2013/10/10 23:44:00
--  

改变思路,简单明了:

 

Dim dr As DataRow = DataTables(CurrentTable.name).find("[第一列] Like \'*湛江*\'") \'从datatable找符合条件的datarow
If dr IsNot Nothing
    Dim r As Integer = FindRow(dr) \'找到后,会自动定位到该行,无需代码再定位
    Output.show(r) \'输出找到的位置
    Output.show(dr("第一列")) \'输出找到的字段
Else
    Output.show("没找到符合条件的行")
End If


--  作者:反思
--  发布时间:2013/10/11 1:02:00
--  
谢谢指点
果然简单很多了。
补充了一下才能顺利运行。

Dim dr As DataRow = DataTables(CurrentTable.name).find("[第一列] Like \'*湛江*\'") \'从datatable找符合条件的datarow
If dr IsNot Nothing
    Dim r As Integer = FindRow(dr) \'找到后,会自动定位到该行,无需代码再定位
    Output.show(r) \'输出找到的位置
    Output.show(dr("第一列")) \'输出找到的字段
Else
    Output.show("没找到符合条件的行")
End If



--  作者:程兴刚
--  发布时间:2013/10/11 13:52:00
--  

晕,修改您的代码时,忘记了写一个所查询表的表名称,这样:

 

Dim dr As DataRow = DataTables(CurrentTable.name).find("[第一列] Like \'*湛江*\'") \'从datatable找符合条件的datarow
If dr IsNot Nothing
    Dim r As Integer = CurrentTable.FindRow(dr) \'找到后,会自动定位到该行,无需代码再定位
    Output.show(r) \'输出找到的位置
    Output.show(dr("第一列")) \'输出找到的字段
Else
    Output.show("没找到符合条件的行")
End If