【问题标题】:marking existing column as primary key in datatable将现有列标记为数据表中的主键
【发布时间】:2010-09-01 20:03:26
【问题描述】:

我有一个基于某些查询的数据库数据表。

我希望该数据表具有现有列的主键。

我该怎么做?

【问题讨论】:

    标签: .net datatable


    【解决方案1】:

    假设你的数据表中你想成为主键的列的名字叫做pk_column,你可以这样做(假设dt是你的DataTable):

    dt.PrimaryKey = new DataColumn[] { dt.Columns["pk_column"] };
    

    如果您的主键由多列组成,您可以将它们添加到数组中,如下所示:

    dt.PrimaryKey = new DataColumn[] { dt.Columns["pk_column1"], dt.Columns["pk_column2"] };
    

    因此,如果您将 student_id 作为主键,您可以这样做:

    dt.PrimaryKey = new DataColumn[] { dt.Columns["student_id"] };
    

    【讨论】:

    • 我已经拥有列名 student_id 的数据表,我想在数据表中设置主键来做到这一点,这是我的确切问题,我不想添加任何其他额外的列来作为主键键
    • @NoviceToDotNet - 此代码不会向 DataTable 添加任何其他列,而是使用 DataTable 中已存在的现有列设置主键。请参阅我的最新编辑,了解如何使用 student_id。
    • @NoviceToDotNet:不要让new 关键字让你失望。 dcp 的建议不会创建任何新的DataColumn 对象;相反,它会创建一个新的 array 并将现有列放入此数组以传递给 PrimaryKey 属性。这是正确的做法。
    【解决方案2】:
    DataColumn pkCurrencyCodeId = TblCurrencyCode.Columns.Add("CurrencyCodeId", typeof(Int32));
    TblCurrencyCode.PrimaryKey = new DataColumn[] { pkCurrencyCodeId };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-03
      • 2017-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多