【问题标题】:Error in strongly typed dataset in VB.NetVB.Net 中强类型数据集的错误
【发布时间】:2011-12-23 21:01:59
【问题描述】:

我找到了为什么会出现此错误但不知道解决方法。

我正在为我的项目使用Strongly Typed Dataset,该项目是作为 DAL 的 dll(Data Access Layer)创建的

我已使用设计器将 Sql Server 表添加到此数据集中并创建了一个 DataAdapter

当我使用 DataTableAdapter 插入时它工作正常

daLabTest.Insert(txtLabTestId.Text, cmbLabTestType.Text, cmbTestName.Text, txtLabFees.Text, dtpLabEffDate.Value)

但是当我想在组合框或网格视图中显示表格中的数据时,我得到了这个错误。

我告诉我发现了问题所在,我只是使用DataSet设计器预览了数据,发现Function返回的数据是这样的......

我为在数据集中查看此内容而编写的查询是

Select distinct(TestType) from LabTestTypes

所以这应该只返回一列,但数据集返回 5 列,但其他列为 null,TestName 列是主列,返回时不应为 null,因此存在问题..

为了解决这个问题,我尝试将NullValueAllowDBNull 属性分别更改为[Empty]true,但这对我不起作用。

【问题讨论】:

  • 你有Option Strict On吗?
  • 没有选项严格已启用beeb

标签: .net vb.net sql-server-2008-r2 strongly-typed-dataset


【解决方案1】:

TestName 是键,因此它不能为 Null。 DataSet 允许您将 TestName 列设置为 Nullable,但是当您尝试填充它时,会引发 ConstraintException,即使您说 AllowDBNull = True。

我的建议是更改强类型 DataSet 中的 Key 字段或在 TestName 字段中返回一个空字符串。第一种方法更好,也许将 Id 设置为 keyfield。

【讨论】:

    猜你喜欢
    • 2010-09-16
    • 1970-01-01
    • 2010-12-08
    • 2012-11-03
    • 2019-01-26
    • 1970-01-01
    • 1970-01-01
    • 2011-06-22
    • 2017-03-23
    相关资源
    最近更新 更多