DataTable.PrimaryKey 属性

定义

获取或设置用作数据表主键的列数组。Gets or sets an array of columns that function as primary keys for the data table.

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))]
[System.Data.DataSysDescription("DataTablePrimaryKeyDescr")]
public System.Data.DataColumn[] PrimaryKey { get; set; }
member this.PrimaryKey : System.Data.DataColumn[] with get, set
Public Property PrimaryKey As DataColumn()

属性值

DataColumn 对象的数组。An array of DataColumn objects.

属性

异常

该键是外键。The key is a foreign key.

示例

第一个示例演示如何为 DataGrid中显示的 DataTable 返回主键列。The first example shows how to return the primary key columns for a DataTable displayed in a DataGrid. 第二个示例演示如何设置 DataTable的主键列。The second example demonstrates how to set the primary key columns for 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}")
    Next
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

注解

表的主键必须唯一,以标识表中的记录。The primary key of a table must be unique to identify the record in the table. 还可以有一个表,其中的主键由两列或更多列组成。It's also possible to have a table with a primary key made up of two or more columns. 当单列不能包含足够的唯一值时,会发生这种情况。This occurs when a single column can't contain enough unique values. 例如,两个列的主键可能由 "FirstName" 和 "LastName" 列组成。For example, a two column primary key might consist of a "FirstName" and "LastName" column. 由于主键可以由多个列组成,因此 PrimaryKey 属性包含一个 DataColumn 对象的数组。Because primary keys can be made up of more than one column, the PrimaryKey property consists of an array of DataColumn objects.

适用于

另请参阅