遍历只能执行一行数据,不能将当前所有符合条件的数据全部执行告知内容的替换,麻烦老师指导下!谢谢!
如当前有姓名为张三记录的值五条,下面代码执行时,值对应生成一条记录,不能一次性将五条记录全部进行执行。
此主题相关图片如下:qq图片20190521204953.png
'获取告知内容表里面告知内容列值是空值 操作单位等于当前系统登录用户所在单位的 所有姓名值集合
Dim lsts As New List(Of String)
lsts=DataTables("告知内容").SQLGetValues("姓名" ,"操作单位='" & _usergroup & "'and 告知内容 is null")
'遍历姓名值结合
For Each lst As String In lsts
'查找告知内容表中操作单位等于当前系统登录用户所在单位 姓名等于姓名值结合的 且告知内容列值为空的数据
Dim dr2 As DataRow = DataTables("告知内容").SQLfind("操作单位='" & _usergroup & "' And 姓名 = '" & lst &"' And 告知内容 Is null ")
'如果找到
If dr2 IsNot Nothing Then
'如果告知内容列不是空值
If dr2("告知内容") IsNot Nothing Then
'查找信息模板中操作单位符合当前系统登录用户所在单位 案件类别等于告知内容表中的案件类别 案件状态等于告知内容表中的案件状态 适用人员等于告知内容表中的人员类型的数据
Dim dr As DataRow = DataTables("信息模板").sqlfind("操作单位='" & _usergroup & "' And 案件类别 = '" & dr2("案件类别") & "'And 案件状态 = '" & dr2("案件状态") & "' and 适用人员='" & dr2("人员类型") & "'" )
'如果找到记录
If dr IsNot Nothing Then
'定义字符串
Dim str1 As String = dr("模板内容")
'定义遍历内容替换表查找内容
Dim drs1 As List(of DataRow) = DataTables("内容替换表").SQLSelect("")
For Each dr1 As DataRow In drs1
'如果替换内容与列名不等于空时
If dr1("替换内容") > "" And dr1("列名") > "" Then
'如果告知内容表列值中包含内容替换表中的列值时,进行对应替换
If DataTables("告知内容").DataCols.Contains(dr1("列名")) Then
str1 = str1.replace(dr1("替换内容"),dr2(dr1("列名")))
End If
End If
Next
'输入替换后的值,并且写入告知内容表中的告知内容列,然后保存告知内容表
output.show(str1)
dr2("告知内容")=str1
dr2.save
End If
End If
End If
Next
[此贴子已经被作者于2019/5/21 20:50:37编辑过]