我写了一段事件代码,实现的功能是: 1、定义一个数组 2、历遍数组中的每一个字符串,在另外一个表中查找这个字符串 3、把找到的内容填充到一个临时表,同时退出查找,如果没有找到,就继续下一个字符串的查找
现在的问题是: 如果数组中的第一个字符串没找到,程序就不会查找下一个字符串的信息了。
大侠帮我看下这段代码,错误到底出在哪里?谢谢!
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 IsNot Nothing 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
|