Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
VB.Net中的强类型数据集中出错_.net_Vb.net_Sql Server 2008 R2_Strongly Typed Dataset - Fatal编程技术网

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