【问题标题】:Strongly Typed DataSet Return All Columns When Selecting a Single Column强类型数据集在选择单列时返回所有列
【发布时间】:2013-08-30 01:31:19
【问题描述】:

我使用 Strongly Typed Dataset 作为 DAL。

我想从我的表中返回一列,因为我将代码编写为

SELECT DISTINCT Floor
FROM            Room
WHERE        (Building = @Building)

但是当我预览数据时,它显示了表的所有列的值为空值,主键的列值为-1。

当我将此查询链接到 ComboBox 时,此条件会引发异常 ..

cmbFloor.DataSource = da.GetFloorByBuilding(cmbBuilding.Text)
cmbFloor.DisplayMember = "Floor"

错误:

Failed to enable constraints. One or more rows contain values violating non-null,     unique, or foreign-key constraints.

【问题讨论】:

  • 您确定您对类型化 DataSet 的约束与您的 DB 表中的约束相同吗?
  • 不,不是这样吗?
  • 约束是因为强类型数据集创建了一个具有表名的类并且在数据库中具有所有约束..但是我已经从数据集文件中删除了主键等约束..但这也是在我的情况下不起作用..
  • 您应该添加一个查询,该查询返回一个标量值到您的 TableAdapter。不要使用返回多条记录的查询类型,因为此时 TableAdapter 使用指定的表模型。但除此之外,如果你想将它用作 ComboBox 的 DataSource,为什么要选择单个值?相反,您应该使用它的 ValueMemberDisplayMember 属性。
  • 不,它会返回单列但有很多行...我想使用为特定表创建的同一个表适配器

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


【解决方案1】:

由于强类型数据集中的每个表都存储为一个类。当查询返回表值或任何标量值时。 Dataset 返回一个包含所有属性的类对象。

【讨论】:

    猜你喜欢
    • 2012-10-18
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 2014-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多