如果使用了Visual Studio生成器,并且正确检测到表的所有内容,则可以为空的列将在强类型数据行上生成以下内容:
-
为表列名命名的公共属性(“ParentCategoryID”)
-
检测空项的公共方法(“bool isparentCategoryIDnull()”)
-
“空”该项的公共方法(“void setParentCategoryIDNull())
假设强类型表名为“my”(生成
MyDataTable
和
MyDataRow
你的
DataSet
被命名
MyDataSetType
,实例名为
myDataSet
:
MyDataSetType.MyRow row = myDataSet.My.NewMyRow();
row.ParentCategoryID = Guid.Empty; //OPTION 1: explicitly set GUID
row.SetParentCategoryIDNull(); //OPTION 2: explicitly set Null
myDataSet.My.AddMyRow(row);
您还可以查看
SetParentCategoryID
看看用来做“无效”的是什么。
此外,要检测“空guid”:
if (row.IsParentCategoryIDNull())
{
//Do something spectacular
}
所以现在您有三种不同类型的值来表示状态:
-
数据库/数据集中有空条目(无父类别)
-
数据库中的非空条目(可能是父类别)
-
数据库中为空的非空条目(
Guid.Empty
GUID(?)??)
当我第一次遇到这个问题时,我想
空的
应该用于表示数据库中的空条目,但这需要对guid类型进行自定义处理。使用包装函数,强类型数据集可以基于结构样式类型对任意数量的可以为空的列提供一致的处理。