VB.Net初始化数据集

时间:2013-08-26 17:57:01

标签: vb.net dataset

Microsoft何时开始强制使用“新”语句初始化数据集?我的公司有一个多年前开始的网站,很多数据集都是用

这样的声明来宣布的
Dim someDataset as Dataset = Nothing

这段代码已经工作了很长时间但我们最近开始收到错误,声明Value不能为null。参数名称:dataset。

我已尽力更新这些旧代码,但我不知道我们正在使用的库有任何更新,我正在尝试确定触发此错误的内容。谢谢

我想强调的是,在错误开始发生之前没有对代码进行任何更改,因为这听起来不太可能。它是一个大型应用程序,数据集以各种方式在整个应用程序中使用。它已经投入生产多年,并且在最近发生此错误之前按预期工作。

2 个答案:

答案 0 :(得分:1)

自.NET第1天起,这一点没有改变。必须在某处使用New语句创建所有引用类型,否则它们将保持为空引用(Nothing)。

听起来用于创建数据集的应用程序的其他部分已被删除或更改,以便有时返回Nothing

答案 1 :(得分:0)

声明和实例化之间存在差异。

此行声明DataSet

Dim myDataSet As DataSet

注意:由于您只声明了一个DataSet对象,因此它未设置为实例,因此它是Nothing

此行实例化DataSet

myDataSet = New DataSet()

通常你会看到这些行放在一起,如下所示:

Dim myDataSet = New DataSet()

如果您只声明DataSet,那么在使用之前一定要检查它是否为Nothing,如下所示:

If myDataSet Is Not Nothing Then
    ' Use myDataSet because there is an instance of it
End If

注意:您应该始终检查Function的返回类型是否为Nothing