我在.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()。