我怎么能包括的DBNull在我的强类型数据集的值?
-
13-09-2019 - |
题
我在我的.net应用程序中创建了一个强类型数据集(MyDataSet)。为了简便起见,我们会说这有一个数据表(MyDataTable),有一列(MyCol)。 MyCol具有其数据类型属性设置为“System.Int32”,其AllowDBNull属性设置为“真”。
我想手动创建一个新行,并把它添加到这个数据集。我创建的行没有问题,喜欢的东西:
MyDataSet.MyDataTableRow myRow = MySimpleDataSet.MyDataTable.NewItemRow();
精细。然而,当我尝试的值设置为的DBNull:
myRow.MyCol = DBNull.Value;
有人告诉我,我不能这样做......它不能强制转换为int。这是有道理的,在某种程度上,因为我定义它是一个int ...但那我怎么才能在那里得到的DBNull?难道我不应该能有DBNull的在那里呢?这不就是AllowDBNull属性是什么?
我显然失去了一些东西fundemental。有人可以帮助解释这是什么?
修改: “INT”强>我也尝试进入作为数据类型,但是当我进入它,说Visual Studio中抛出一个错误“栏目需要一个有效的数据类型。”
解决方案
你在MyDataTableRow类命名为生成的方法:SetMyColNull()
myRow.SetMyColNull();
您也可以这样做:
myRow["MyCol"] = DBNull.Value;
因为myRow["MyCol"]
是类型object
的
编辑(通过提问OP添加的):
还有用于读取该值背出生成的对应方法,IsMyColNull()。
其他提示
有两件事情。
允许的DBNull是从能够将值设置为的DBNull单独设置。
我只用了DataSet XSD界面来设置这个......但我不得不不仅将“AllowDBNull =真”,但我也不得不设置“NullValue属性=(空)”。本来“NullValue属性”设置为“(异常)”。这意味着,该数据集将接受空bieng .fill伪()的,但不会允许你手动设置为null值。
不知道这是你的问题,但它听起来相似。
只是去设计模式在数据集中,并右击场要启用为空,选择属性,在属性窗口,AllowDBNull设置为True,NullValue属性到(NULL); 它为我的作品吧! 最诚挚的问候!
INT不接受空,但诠释? (该INullable版)一样。我认为你需要的数据类型来代替。