Foxtable(狐表)用户栏目专家坐堂 → [求助]List集合数据问题


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

主题:[求助]List集合数据问题

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


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
[求助]List集合数据问题  发帖心情 Post By:2020/1/20 16:06:00 [只看该作者]

各位老师辛苦!
以下代码,是从“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


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


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By: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



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/1/20 22:33:00 [只看该作者]

Dim xms As List(of String()) = DataTables("GMYX").GetValues("XZMC|xjhzXM")

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


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By:2020/1/20 22:53:00 [只看该作者]

谢谢“蓝”老师,可以还是提示:未将对象引用设置到对象的实例。

是不是还是应该把那个判断加上啊?就是判断在"nms"集合中,没有找到相应的值才增加行,写入呀?
[此贴子已经被作者于2020/1/20 22:56:16编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:316 积分:2899 威望:0 精华:0 注册:2009/7/25 18:29:00
  发帖心情 Post By:2020/1/20 22:57:00 [只看该作者]

谢谢老师指导!!

 回到顶部