我在.NET应用程序中创建了一个强类型的数据集(MyDataSet)。为了简单起见,我们将说它具有一个DataTable(MyDataTable)和一列(MyCol)。
MyCol的DataType属性设置为“System.Int32”,其AllowDBNull属性设置为“true”。

我想手动创建一个新行,并将其添加到此数据集中。我创建的行没有问题,类似于:

MyDataSet.MyDataTableRow myRow = MySimpleDataSet.MyDataTable.NewItemRow();

美好的。但是,当我尝试将值设置为DBNull时:
myRow.MyCol = DBNull.Value;

有人告诉我我做不到...它不能将其转换为整数。从某种意义上讲,这是有道理的,因为我已将其定义为int ...但是如何在其中获取DBNull?我不应该可以在那里拥有DBNull吗?这不是AllowDBNull属性的作用吗?

我显然缺少基本的东西。有人可以帮忙解释一下吗?

编辑:我也尝试输入“int?”作为DataType,但在我输入Visual Studio时会抛出错误,说“列需要有效的DataType。”

最佳答案

您在MyDataTableRow类中具有一个名为SetMyColNull()的生成方法。

myRow.SetMyColNull();

您也可以:
myRow["MyCol"] = DBNull.Value;

因为myRow["MyCol"]object类型

编辑(由问题OP添加):

还有一个用于读取该值的对应方法IsMyColNull()。

10-07 23:08