Foxtable(狐表)用户栏目专家坐堂 → [求助]一段查询代码问题,一直找不到原因


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

主题:[求助]一段查询代码问题,一直找不到原因

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/22 11:02:00 [显示全部帖子]

Dim dr As DataRow=e.DataRow
Dim drs As List(of DataRow)
If e.DataCol.Name="查找的多型号资料"   Then    '如果没有输入查询则清空该行
    If e.DataRow.IsNull("查找的多型号资料") Then
        For Each a As DataCol In DataTables("多型号兼容查询").Datacols
            dr(a.name)=Nothing
        Next
    Else
        Dim s As String
        s=dr("查找的多型号资料")
        s=s.ToLower()                           '统一转换为小写
        Dim s1 As String                        '定义数组中的单个字符串
        Dim values() As String                '定义一个字符串数组
        values=s.split(",")                      '把s分割后的字符,组成数组values
        For Index As Integer = 0 To Values.Length -1   '从数组中取出一个值
            s1=Values(Index)
            Dim filter As String
            filter="[ReplacementFor] like '*" & s1 & "*' or [FitMachineModels] Like '*" & s1 & "*'"    '定义查找条件
            drs=DataTables("BPB量产电池").Select(filter)
            If drs.Count > 0   Then  '如果找到了
                Dim n As Integer=drs.count
                dr("符合数量")=n
                dr("可查到的型号")=s1
                With DataTables("多兼容型号查询").DataRows  '清除临时表所有历史行
                    .Clear()
                End With
                Dim f As New Filler                                '把查找到的结果填充到临时表
                f.SourceTable = DataTables("BPB量产电池")
                f.filter=filter
                f.DataTable = DataTables("多兼容型号查询")
                f.DataCols ="产品名称,Code,Capacity,Voltage"
                f.Fill()
                Exit For    '找到的话就退出循环
            Else   '没找到就继续
                Continue For
            End If
        Next
    End If
End If

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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2011/11/22 11:10:00 [显示全部帖子]

drs怎么可能为Nothing,你这是select,即使没有任何一行,也会返回一个集合,只是集合中的行数等于0而已。

find才会返回nothing


 回到顶部