VB.Net中的强类型数据集中出错
我已经找到了发生此错误的原因,但不知道修复方法 我正在为我的项目使用VB.Net中的强类型数据集中出错,.net,vb.net,sql-server-2008-r2,strongly-typed-dataset,.net,Vb.net,Sql Server 2008 R2,Strongly Typed Dataset,我已经找到了发生此错误的原因,但不知道修复方法 我正在为我的项目使用强类型数据集,该项目被创建为DAL的dll(数据访问层) 我已经使用设计器将Sql Server表添加到此数据集中,并创建了一个DataAdapter 当我使用DataTableAdapter插入时,它可以正常工作 daLabTest.Insert(txtLabTestId.Text, cmbLabTestType.Text, cmbTestName.Text, txtLabFees.Text, dtpLabEffDate.V
强类型数据集
,该项目被创建为DAL的dll(数据访问层
)
我已经使用设计器将Sql Server表添加到此数据集中,并创建了一个DataAdapter
当我使用DataTableAdapter插入时,它可以正常工作
daLabTest.Insert(txtLabTestId.Text, cmbLabTestType.Text, cmbTestName.Text, txtLabFees.Text, dtpLabEffDate.Value)
但是当我想在组合框或gridview中显示表中的数据时,我会遇到这个错误
我说我发现了问题所在,我只是使用DataSet designer预览了数据,发现函数返回如下数据
我为在dataset中查看此数据而编写的查询是
Select distinct(TestType) from LabTestTypes
因此,这应该只返回一列,但数据集将返回5列,而其他列将返回null,并且TestName
列是主列,返回时不应为null,因此问题存在
为了解决这个问题,我尝试将
NullValue
&AllowDBNull
属性分别更改为[Empty]
和true
,但这对我不起作用。TestName是键,因此不能为Null。DataSet允许您将TestName列设置为可空,但当您尝试填充它时,即使您说AllowDBNull=True,也会引发ConstraintException
我的建议是更改强类型数据集中的键字段,或者在TestName字段中返回一个空字符串。第一种方法更好,可以将Id设置为keyfield。您是否有
选项Strict On
?没有启用任何选项Strict