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.

示例

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

适用于

另请参阅