如何在我的强类型数据集中包含DBNull作为值?

Bes*_*ska 8 .net dbnull strongly-typed-dataset

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

我想手动创建一个新行,并将其添加到此数据集中.我创建了没有问题的行,例如:

MyDataSet.MyDataTableRow myRow = MySimpleDataSet.MyDataTable.NewItemRow();
Run Code Online (Sandbox Code Playgroud)

精细.但是,当我尝试将值设置为DBNull时:

myRow.MyCol = DBNull.Value;
Run Code Online (Sandbox Code Playgroud)

我被告知我不能这样做......它无法将其转换为int.从某种意义上说,这是有道理的,因为我已经将它定义为一个int ...但是我怎么能在那里获得DBNull呢?我不应该在那里有DBNull吗?这不是AllowDBNull属性的用途吗?

我显然错过了一些有趣的东西.有人可以帮忙解释它是什么吗?

编辑:我也试过输入"int?" 作为DataType,但是当我输入它时,Visual Studio会抛出一个错误,说"Column需要一个有效的DataType".

man*_*nji 13

你在MyDataTableRow类中有一个名为SetMyColNull()的生成方法.

myRow.SetMyColNull();
Run Code Online (Sandbox Code Playgroud)

你也可以这样做:

myRow["MyCol"] = DBNull.Value;
Run Code Online (Sandbox Code Playgroud)

因为myRow["MyCol"]是类型的object

编辑(由问题OP添加):

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