以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]List集合数据问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=145456) |
-- 作者:bashanren -- 发布时间:2020/1/20 16:06:00 -- [求助]List集合数据问题 各位老师辛苦! 以下代码,是从“GMYX”表中“xjhzXM”(乡级河长姓名)列中集合不重复值写入表“C”中,现在问题来了,现在表“GMYX”中“XZMC”(乡镇名称)列中乡镇名称不一样,但“xjhzXM”(乡级河长姓名)可能一样,也就是有姓名重复(同一乡镇不会有重复姓名),如:A乡有“张三”,B乡也有“张三”,要求将不同乡镇的有重复的乡级河长姓名(两个张三)都要写入“表C”中,也就是要将“XZMC”(乡镇名称)列纳入集合参与比较,请大师帮忙修改下面的代码,谢谢!! \'--------------集合规模以下乡级河长相关 Dim xms As New List(of String) For Each dr1 As DataRow In DataTables("GMYX").DataRows If xms.Contains(dr1("xjhzXM")) = False Then xms .Add(dr1("xjhzXM")) Dim dr2 As DataRow = DataTables("C").AddNew() dr2("xzMC") = dr1("XZMC") dr2("xjhzXM") = dr1("XJHZXM") dr2("xjhzTEL") = dr1("XJHZDH") dr2("xjhzZW") = dr1("XJHZZW") End If Next |
-- 作者:有点蓝 -- 发布时间:2020/1/20 16:16:00 -- http://www.foxtable.com/webhelp/topics/2747.htm,看实例六 Dim xms As New List(of String()) = DataTables("GMYX").GetValues("XZMC|xjhzXM") For Each ns As String() In xms Dim dr1 As DataRow = DataTables("GMYX").find("XZMC=\'" & ns(0) & "\' and xjhzXM=\'" & ns(1) & "\'") Dim dr2 As DataRow = DataTables("C").AddNew() dr2("xzMC") = ns(0) dr2("xjhzXM") = ns(1) dr2("xjhzTEL") = dr1("XJHZDH") dr2("xjhzZW") = dr1("XJHZZW") Next |
-- 作者:bashanren -- 发布时间:2020/1/20 22:11:00 -- 谢谢老师的指导,我将代码写入后,提示:编译错误,应为语句结束。于是我将 Dim xms As New List(of String()) = DataTables("GMYX").GetValues("XZMC|xjhzXM") 改为:如下代码。可运行时又提示:“未将对象引用设置到对象的实例。”,可我又找不出毛病,请老师再指导。 \'--------------集合规模以下乡级河长相关 Dim xms As New List(of String()) xms = DataTables("GMYX").GetValues("XZMC|xjhzXM") For Each ns As String() In xms Dim dr1 As DataRow = DataTables("GMYX").find("XZMC=\'" & ns(0) & "\' and xjhzXM=\'" & ns(1) & "\'") Dim dr2 As DataRow = DataTables("XJHHZLSHZB").AddNew() dr2("xzMC") = ns(0) dr2("xjhzXM") = ns(1) dr2("xjhzTEL") = dr1("XJHZDH") dr2("xjhzZW") = dr1("XJHZZW") Next |
-- 作者:有点蓝 -- 发布时间:2020/1/20 22:33:00 -- Dim xms As List(of String()) = DataTables("GMYX").GetValues("XZMC|xjhzXM") |
-- 作者:bashanren -- 发布时间:2020/1/20 22:53:00 -- 谢谢“蓝”老师,可以还是提示:未将对象引用设置到对象的实例。 是不是还是应该把那个判断加上啊?就是判断在"nms"集合中,没有找到相应的值才增加行,写入呀?
[此贴子已经被作者于2020/1/20 22:56:16编辑过]
|
-- 作者:有点蓝 -- 发布时间:2020/1/20 22:56:00 -- 写了这么久代码,一点判断能力都没有? Dim xms As New List(of String()) = DataTables("GMYX").GetValues("XZMC|xjhzXM") For Each ns As String() In xms Dim dr1 As DataRow = DataTables("GMYX").find("XZMC=\'" & ns(0) & "\' and xjhzXM=\'" & ns(1) & "\'") if dr1 isnot nothing then Dim dr2 As DataRow = DataTables("C").AddNew() dr2("xzMC") = ns(0) dr2("xjhzXM") = ns(1) dr2("xjhzTEL") = dr1("XJHZDH") dr2("xjhzZW") = dr1("XJHZZW") end if Next
|
-- 作者:bashanren -- 发布时间:2020/1/20 22:57:00 -- 谢谢老师指导!! |