public:
 property cli::array <System::Data::DataColumn ^> ^ PrimaryKey { cli::array <System::Data::DataColumn ^> ^ get(); void set(cli::array <System::Data::DataColumn ^> ^ value); };
[System.ComponentModel.TypeConverter(typeof(System.Data.PrimaryKeyTypeConverter))]
public System.Data.DataColumn[] PrimaryKey { get; set; }
public System.Data.DataColumn[] PrimaryKey { get; set; }
[System.ComponentModel.TypeConverter(typeof(System.Data.PrimaryKeyTypeConverter))]
[System.Data.DataSysDescription("DataTablePrimaryKeyDescr")]
public System.Data.DataColumn[] PrimaryKey { get; set; }
[<System.ComponentModel.TypeConverter(typeof(System.Data.PrimaryKeyTypeConverter))>]
member this.PrimaryKey : System.Data.DataColumn[] with get, set
member this.PrimaryKey : System.Data.DataColumn[] with get, set
[<System.ComponentModel.TypeConverter(typeof(System.Data.PrimaryKeyTypeConverter))>]
[<System.Data.DataSysDescription("DataTablePrimaryKeyDescr")>]
member this.PrimaryKey : System.Data.DataColumn[] with get, set
Public Property PrimaryKey As DataColumn()

第一个示例演示如何返回在 a DataGrid 中显示的主键列 DataTable 。 第二个示例演示如何为 a DataTable 设置主键列。

private void GetPrimaryKeys(DataTable table) // Create the array for the columns. DataColumn[] columns; columns = table.PrimaryKey; // Get the number of elements in the array. Console.WriteLine($"Column Count: {columns.Length}"); for (int i = 0; i < columns.Length; i++) Console.WriteLine($"{columns[i].ColumnName} {columns[i].DataType}"); private void SetPrimaryKeys() // Create a new DataTable and set two DataColumn objects as primary keys. var table = new DataTable(); var keys = new DataColumn[2]; DataColumn column; // Create column 1. column = new DataColumn(); column.DataType = Type.GetType("System.String"); column.ColumnName= "FirstName"; // Add the column to the DataTable.Columns collection. table.Columns.Add(column); // Add the column to the array. keys[0] = column; // Create column 2 and add it to the array. column = new DataColumn(); column.DataType = Type.GetType("System.String"); column.ColumnName = "LastName"; table.Columns.Add(column); // Add the column to the array. keys[1] = column; // Set the PrimaryKeys property to the array. table.PrimaryKey = keys; Private Sub GetPrimaryKeys(table As DataTable) ' Create the array for the columns. Dim columns As DataColumn() columns = table.PrimaryKey ' Get the number of elements in the array. Console.WriteLine($"Column Count: {columns.Length}") For i = 0 To columns.GetUpperBound(0) Console.WriteLine($"{columns(i).ColumnName} {columns(i).DataType}") End Sub Private Sub SetPrimaryKeys() ' Create a new DataTable and set two DataColumn objects as primary keys. Dim table As New DataTable() Dim keys(1) As DataColumn Dim column As DataColumn ' Create column 1. column = New DataColumn() column.DataType = Type.GetType("System.String") column.ColumnName= "FirstName" ' Add the column to the DataTable.Columns collection. table.Columns.Add(column) ' Add the column to the array. keys(0) = column ' Create column 2 and add it to the array. column = New DataColumn() column.DataType = Type.GetType("System.String") column.ColumnName = "LastName" table.Columns.Add(column) ' Add the column to the array. keys(1) = column ' Set the PrimaryKeys property to the array. table.PrimaryKey = keys End Sub

表的主键必须是唯一的,才能标识表中的记录。 还可以使用由两列或更多列组成的主键的表。 当单个列不能包含足够的唯一值时,将发生这种情况。 例如,两列主键可能包含“OrderNumber”和“ProductID”列。 由于主键可以由多个列组成,因此 PrimaryKey 该属性由对象数组 DataColumn 组成。