以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=63532)

--  作者:yjd
--  发布时间:2015/1/22 21:24:00
--  [求助]
If User.IsRole("对公专区") Then
    \'审核代码
    Dim idxs As String = ""
    For Each dr As DataRow In DataTables("对公客户明细").Select("已开通业务 is not null And [年日均余额]>=50000")
        If dr("已开通业务").split(",").length >= 4 Then
            idxs &= dr("_Identify") & ","
        End If
    Next
    Tables("对公客户明细").Filter = "_Identify in (" & idxs.Trim(",") & ")"
Else
    MessageBox.Show("您无此权限!")
End If

如果数据表表没有符合记录,系统报错System.Data.SyntaxErrorException: 语法错误: IN 关键字后面必须是由逗号分隔的非空表达式列表,并且必须用括号括起来。版主怎样写代码可以解决。谢谢!

--  作者:有点甜
--  发布时间:2015/1/22 21:28:00
--  
 If User.IsRole("对公专区") Then
    \'审核代码
    Dim idxs As String = "-1,"
    For Each dr As DataRow In DataTables("对公客户明细").Select("已开通业务 is not null And [年日均余额]>=50000")
        If dr("已开通业务").split(",").length >= 4 Then
            idxs &= dr("_Identify") & ","
        End If
    Next
    Tables("对公客户明细").Filter = "_Identify in (" & idxs.Trim(",") & ")"
Else
    MessageBox.Show("您无此权限!")
End If
--  作者:yjd
--  发布时间:2015/1/22 21:36:00
--  
版主,这样虽然不报错,可是数据表有符合条件记录也不能实现成功筛选.
--  作者:有点甜
--  发布时间:2015/1/22 21:44:00
--  
 那就是你的代码逻辑不对,或者没有对应的数据。

 例子上传上来