以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]怎么把指定字段的文本加入集合?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=95072)

--  作者:ufo20085
--  发布时间:2017/1/9 16:48:00
--  [求助]怎么把指定字段的文本加入集合?
Dim drs1,drs2 As List(Of DataRow)
drs1 = DataTables("报关单数据201516").Select("[申报日期] >= #1/1/2015# And [申报日期] < #1/1/2016#")
drs2 = DataTables("报关单数据201516").Select("[申报日期] >= #1/1/2016# And [申报日期] < #1/1/2017#")
Dim names1,names2 As  List(of String)
For Each dr1 As DataRow In drs1
    If names1.Contains(dr1("经营单位编号")) = False Then
        Names1.Add(dr1("经营单位编号"))
    End If
Next


我在执行这段代码的时候提示
代码执行出错,错误信息:
system.nullreferenceexception:未将对象引用设置到对象的实例。

代码应该错在
    If names1.Contains(dr1("经营单位编号")) = False Then
        Names1.Add(dr1("经营单位编号"))
    End If
这一段
我把这段替换成output.show(dr1("经营单位编号"))没有报错

--  作者:有点色
--  发布时间:2017/1/9 16:49:00
--  

Dim names1 As new List(of String)

Dim names2 As new List(of String)


--  作者:ufo20085
--  发布时间:2017/1/9 16:55:00
--  
谢谢老师。
请问为什么datarow的集合只要dim as list
string的集合却要dim as new list 呢?

--  作者:有点色
--  发布时间:2017/1/9 17:07:00
--  

 因为你select的时候,已经new出了一个集合,只是赋值给drs1而已;

 

 而你的name1,并没有new出来,自然不能直接使用。