【问题标题】:How to set a column containing NULL values as secondary primary key of a DataTable如何将包含 NULL 值的列设置为 DataTable 的辅助主键
【发布时间】:2016-06-30 11:43:21
【问题描述】:

我有一个DataTable,其中填充了使用 JOIN 的 SQL 语句。 DataTableIDCategory 内部是唯一的一对,ID 本身不是唯一的。

Category 允许包含 NULL 值。我想将它们设置为DataTablePrimaryKey,以便能够使用Find(...) 方法查找行。

但是,当我尝试将IDCategory 设置为DataTablePrimaryKey 属性时,我得到了System.Data.DataException

代码:

dt.PrimaryKey = New DataColumn() {dt.Columns.Item("ID"), dt.Columns.Item("Category")}

异常(翻译):

“类别”列中有空值

如何仍将IDCategory 设置为PrimaryKey

【问题讨论】:

    标签: .net winforms datatable .net-2.0


    【解决方案1】:

    在您为 Null 列填充值之前,它不允许设置主键。主键概念本身就是“NOT NULL”列。

    来自documentation

    当您将单个 DataColumn 标识为 DataTable 的 PrimaryKey 时,该表会自动将该列的 AllowDBNull 属性设置为 false,并将 Unique 属性设置为 true。 对于多列主键,只有 AllowDBNull 属性会自动设置为 false。

    【讨论】:

      猜你喜欢
      • 2012-08-08
      • 1970-01-01
      • 2011-09-17
      • 1970-01-01
      • 2021-04-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-20
      相关资源
      最近更新 更多