以文本方式查看主题
- Foxtable(狐表) (http://foxtable.com/bbs/index.asp)
-- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2)
---- 如何遍历来源表:问题反馈与整改,如果有符合条件的数据行那就再次判断目标表:反馈问题清单 中是否有存在的数据行 如果有 那就删除,如果不存在那就新增数据行 然后并保存 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=179177)
|
-- 作者:cnsjroom
-- 发布时间:2022/8/11 15:24:00
-- 如何遍历来源表:问题反馈与整改,如果有符合条件的数据行那就再次判断目标表:反馈问题清单 中是否有存在的数据行 如果有 那就删除,如果不存在那就新增数据行 然后并保存
如何遍历来源表:问题反馈与整改,如果有符合条件的数据行
那就再次判断目标表:反馈问题清单 中是否有存在的数据行 如果有 那就删除,如果不存在那就新增数据行 然后并保存
当前代码如下:【没有正常运行完毕,麻烦老师帮忙看看!】
Dim cmd As SQ LCo mmand cmd.Connecti cmd.CommandText = "s ele ct * from 问题反馈与整改 where 巡察组=\'" & e.Values("巡察组") & "\' and 被巡单位=\'" & e.Values("被巡单位") & "\' and 巡察届别=\'" & e.Values("巡察届别") & "\' and 巡察轮次=\'" & e.Values("巡察轮次") & "\'" If cmd.ExecuteScalar > 0 Then Dim cmd1 As SQ L Command
cmd1.Connecti
cmd1.CommandText = "s ele ct * from 反馈问题清单 where 巡察组=\'" & e.Values("巡察组") & "\' and 被巡单位=\'" & e.Values("被巡单位") & "\' and 巡察届别=\'" & e.Values("巡察届别") & "\' and 巡察轮次=\'" & e.Values("巡察轮次") & "\'" If cmd1.ExecuteScalar > 0 Then cmd1.CommandText = "DE LETE FROM {反馈问题清单} WHERE 巡察组=\'" & e.Values("巡察组") & "\' and 被巡单位=\'" & e.Values("被巡单位") & "\' and 巡察届别=\'" & e.Values("巡察届别") & "\' and 巡察轮次=\'" & e.Values("巡察轮次") & "\'" cmd1.ExecuteNonQuery() Else Dim dt1 As DataTable = cmd1.ExecuteReader(True) Dim dr1 As DataRow Dim cls() As String = {"巡察届别","巡察轮次","被巡单位","巡察组","问题类别","具体表现","存在问题","来源","反馈时间","反馈状态"} \'定义列名 For i As Integer = 0 To cls.Length - 1 dr1 = dt1.AddNew() dr1(i)=cls(i) dr1("反馈状态")="已反馈" Next
dt1.Save End If End If
[此贴子已经被作者于2022/8/11 15:24:22编辑过]
|
-- 作者:有点蓝
-- 发布时间:2022/8/11 15:35:00
--
乱七八糟的没看懂。删除哪个表数据?新增哪个表数据,新增什么数据?
|
-- 作者:cnsjroom
-- 发布时间:2022/8/11 16:03:00
-- 回复:(有点蓝)乱七八糟的没看懂。删除哪个表数据?...
先判断问题反馈与整改表中是否有符合巡察组 巡察单位 届别 轮次的数据 cmd.CommandText = "s ele ct * from 问题反馈与整改 where 巡察组=\'" & e.Values("巡察组") & "\' and 被巡单位=\'" & e.Values("被巡单位") & "\' and 巡察届别=\'" & e.Values("巡察届别") & "\' and 巡察轮次=\'" & e.Values("巡察轮次") & "\'" If cmd.ExecuteScalar > 0 Then 如果有数据 Dim cmd1 As SQ L Command
cmd1.Connecti
cmd1.CommandText = "s ele ct * from 反馈问题清单 where 巡察组=\'" & e.Values("巡察组") & "\' and 被巡单位=\'" & e.Values("被巡单位") & "\' and 巡察届别=\'" & e.Values("巡察届别") & "\' and 巡察轮次=\'" & e.Values("巡察轮次") & "\'"
那就判断反馈问题清单中是否有数据,如有有 就删除对应条件的数据 If cmd1.ExecuteScalar > 0 Then cmd1.CommandText = "DE LETE FROM {反馈问题清单} WHERE 巡察组=\'" & e.Values("巡察组") & "\' and 被巡单位=\'" & e.Values("被巡单位") & "\' and 巡察届别=\'" & e.Values("巡察届别") & "\' and 巡察轮次=\'" & e.Values("巡察轮次") & "\'" cmd1.ExecuteNonQuery() Else
如果没有,就把问题反馈与整改表对应条件的数据,全部写入反馈问题清单中,对应的列以cls()为准 Dim dt1 As DataTable = cmd1.ExecuteReader(True) Dim dr1 As DataRow Dim cls() As String = {"巡察届别","巡察轮次","被巡单位","巡察组","问题类别","具体表现","存在问题","来源","反馈时间","反馈状态"} \'定义列名 For i As Integer = 0 To cls.Length - 1 dr1 = dt1.AddNew() dr1(i)=cls(i) dr1("反馈状态")="已反馈" Next
dt1.Save End If End If
|
-- 作者:有点蓝
-- 发布时间:2022/8/11 16:05:00
--
【对应的列以cls()为准】还是没看懂,比如"巡察届别"这个列填入什么数据
|
-- 作者:cnsjroom
-- 发布时间:2022/8/11 16:40:00
-- 回复:(有点蓝)【对应的列以cls()为准】还是没看懂,...
Dim cls() As String = {"巡察届别","巡察轮次","被巡单位","巡察组","问题类别","具体表现","存在问题","来源","反馈时间","反馈状态"}
这些字段是两个表都有的 就是要将问题反馈与整改中 上述字段的数据 写入 反馈问题清单中 对应的字段数据
目前一楼的代码实现了符合条件数据的全部删除 但是新增就没有实现了!
[此贴子已经被作者于2022/8/11 16:40:10编辑过]
|
-- 作者:有点蓝
-- 发布时间:2022/8/11 17:11:00
--
不同表数据填充看这个:http://www.foxtable.com/webhelp/topics/1533.htm
|
-- 作者:cnsjroom
-- 发布时间:2022/8/12 10:49:00
-- 回复:(有点蓝)不同表数据填充看这个:http://www.f...
--------------------------- 版本:2022.1.30.2 --------------------------- 代码执行出错,错误信息:
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 UserCode.Test() --------------------------- 确定 ---------------------------
当前代码如下:
Dim cmd As SQLCommand cmd.Conne ctio nName = "主数据源" cmd.Comm andText = "se lect * from 巡察问题反馈与整改" If cmd.ExecuteScalar > 0 Then Dim cmd1 As SQLCommand cmd1.Con ne cti cmd.CommandText = "sel ect * from 巡察问题反馈与整改" Dim dt As DataTable = cmd.ExecuteReader() cmd1.Com m andText = "se lect * from 反馈问题清单" Dim dt2 As DataTable = cmd1.ExecuteReader() Dim cols1() As String = {"巡察届别","巡察轮次","被巡单位","巡察组","问题类别","具体表现","存在问题","来源","反馈时间"} \'定义列名 Dim cols2() As String = {"巡察届别","巡察轮次","被巡单位","巡察组","问题类别","具体表现","存在问题","来源","反馈时间"} \'定义列名 For Each dr1 As DataRow In dt.Sel ect("被巡单位=\'县\'") Dim dr2 As DataRow = dt2.AddNew() For i As Integer = 0 To Cols1.Length -1 output.show(dr2(Cols2(i))) dr2(Cols2(i)) = dr1(Cols1(i)) dr2("反馈状态")="已反馈" Next dt2.save Next End If
|
-- 作者:有点蓝
-- 发布时间:2022/8/12 11:13:00
--
先判断问题反馈与整改表中是否有符合巡察组 巡察单位 届别 轮次的数据 cmd.CommandText = "s ele ct count(*) from 问题反馈与整改 where 巡察组=\'" & e.Values("巡察组") & "\' and 被巡单位=\'" & e.Values("被巡单位") & "\' and 巡察届别=\'" & e.Values("巡察届别") & "\' and 巡察轮次=\'" & e.Values("巡察轮次") & "\'" If cmd.ExecuteScalar > 0 Then 如果有数据 Dim cmd1 As SQ L Command cmd1.Connecti cmd1.CommandText = "s ele ct count(*) from 反馈问题清单 where 巡察组=\'" & e.Values("巡察组") & "\' and 被巡单位=\'" & e.Values("被巡单位") & "\' and 巡察届别=\'" & e.Values("巡察届别") & "\' and 巡察轮次=\'" & e.Values("巡察轮次") & "\'" 那就判断反馈问题清单中是否有数据,如有有 就删除对应条件的数据 If cmd1.ExecuteScalar > 0 Then cmd1.CommandText = "DE LETE FROM {反馈问题清单} WHERE 巡察组=\'" & e.Values("巡察组") & "\' and 被巡单位=\'" & e.Values("被巡单位") & "\' and 巡察届别=\'" & e.Values("巡察届别") & "\' and 巡察轮次=\'" & e.Values("巡察轮次") & "\'" cmd1.ExecuteNonQuery() Else 如果没有,就把问题反馈与整改表对应条件的数据,全部写入反馈问题清单中,对应的列以cls()为准 cmd.CommandText = "s ele ct * from 问题反馈与整改 where 巡察组=\'" & e.Values("巡察组") & "\' and 被巡单位=\'" & e.Values("被巡单位") & "\' and 巡察届别=\'" & e.Values("巡察届别") & "\' and 巡察轮次=\'" & e.Values("巡察轮次") & "\'" Dim dt As DataTable = cmd1.ExecuteReader() cmd1.CommandText = "s ele ct * from 反馈问题清单 where _identify is null" Dim dt1 As DataTable = cmd1.ExecuteReader(True) Dim dr1 As DataRow Dim cls() As String = {"巡察届别","巡察轮次","被巡单位","巡察组","问题类别","具体表现","存在问题","来源","反馈时间"} \'定义列名 for each dr as datarow in dt.datarows dr1 = dt1.AddNew() dr1("反馈状态")="已反馈" For i As Integer = 0 To cls.Length - 1 dr1(cls(i))=dr(cls(i)) Next next dt1.Save End If End If
|
-- 作者:cnsjroom
-- 发布时间:2022/8/12 11:40:00
-- 回复:(有点蓝)先判断问题反馈与整改表中是否有符合...
谢谢老师!
|
-- 作者:有点蓝
-- 发布时间:2022/8/12 11:51:00
--
学会把帮助的用法融合到自己的代码里,理解帮助处理问题的逻辑,而不只是会抄代码
|