【发布时间】:2010-09-01 20:03:26
【问题描述】:
我有一个基于某些查询的数据库数据表。
我希望该数据表具有现有列的主键。
我该怎么做?
【问题讨论】:
我有一个基于某些查询的数据库数据表。
我希望该数据表具有现有列的主键。
我该怎么做?
【问题讨论】:
假设你的数据表中你想成为主键的列的名字叫做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"] };
【讨论】:
new 关键字让你失望。 dcp 的建议不会创建任何新的DataColumn 对象;相反,它会创建一个新的 array 并将现有列放入此数组以传递给 PrimaryKey 属性。这是正确的做法。
DataColumn pkCurrencyCodeId = TblCurrencyCode.Columns.Add("CurrencyCodeId", typeof(Int32));
TblCurrencyCode.PrimaryKey = new DataColumn[] { pkCurrencyCodeId };
【讨论】: