Gets or sets an array of columns that function as primary keys for the data table.
[Visual Basic] Public Property PrimaryKey As DataColumn () [C#] public DataColumn[] PrimaryKey {get; set;} [C++] public: __property DataColumn* get_PrimaryKey(); public: __property void set_PrimaryKey(DataColumn*[]); [JScript] public function get PrimaryKey() : DataColumn[]; public function set PrimaryKey(DataColumn[]);
An array of DataColumn objects.
| Exception Type | Condition |
|---|---|
| DataException | The key is a foreign key. |
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. For example, a two column primary key might consist of a "FirstName" and "LastName" column. Because primary keys can be made up of more than one column, the PrimaryKey property consists of an array of DataColumn objects.
[Visual Basic, C#] The first example shows how to return the primary key columns for a DataTable displayed in a DataGrid. The second example demonstrates how to set the primary key columns for a DataTable.
[Visual Basic] Private Sub GetPrimaryKeys(myTable As DataTable) ' Create the array for the columns. Dim colArr() As DataColumn colArr = myTable.PrimaryKey ' Get the number of elements in the array. Console.WriteLine("Column Count: " & colArr.Length.ToString()) Dim i As Integer For i = 0 To colArr.GetUpperBound(0) Console.WriteLine(colArr(i).ColumnName & colArr(i).DataType.ToString()) Next i End Sub Private Sub SetPrimaryKeys() ' Create a new DataTable and set two DataColumn objects as primary keys. Dim myTable As DataTable = new DataTable() Dim keys(2) As DataColumn Dim myColumn As DataColumn ' Create column 1. myColumn = New DataColumn() myColumn.DataType = System.Type.GetType("System.String") myColumn.ColumnName= "FirstName" ' Add the column to the DataTable.Columns collection. myTable.Columns.Add(myColumn) ' Add the column to the array. keys(0) = myColumn ' Create column 2 and add it to the array. myColumn = New DataColumn() myColumn.DataType = System.Type.GetType("System.String") myColumn.ColumnName = "LastName" myTable.Columns.Add(myColumn) ' Add the column to the array. keys(1) = myColumn ' Set the PrimaryKeys property to the array. myTable.PrimaryKey = keys End Sub [C#] private void GetPrimaryKeys(DataTable myTable){ // Create the array for the columns. DataColumn[] colArr; colArr = myTable.PrimaryKey; // Get the number of elements in the array. Console.WriteLine("Column Count: " + colArr.Length); for(int i = 0; i < colArr.Length; i++){ Console.WriteLine(colArr[i].ColumnName + colArr[i].DataType); } } private void SetPrimaryKeys(){ // Create a new DataTable and set two DataColumn objects as primary keys. DataTable myTable = new DataTable(); DataColumn[] keys = new DataColumn[2]; DataColumn myColumn; // Create column 1. myColumn = new DataColumn(); myColumn.DataType = System.Type.GetType("System.String"); myColumn.ColumnName= "FirstName"; // Add the column to the DataTable.Columns collection. myTable.Columns.Add(myColumn); // Add the column to the array. keys[0] = myColumn; // Create column 2 and add it to the array. myColumn = new DataColumn(); myColumn.DataType = System.Type.GetType("System.String"); myColumn.ColumnName = "LastName"; myTable.Columns.Add(myColumn); // Add the column to the array. keys[1] = myColumn; // Set the PrimaryKeys property to the array. myTable.PrimaryKey = keys; }
[C++, JScript] No example is available for C++ or JScript. To view a Visual Basic or C# example, click the Language Filter button
in the upper-left corner of the page.
Platforms: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 family, .NET Compact Framework - Windows CE .NET
DataTable Class | DataTable Members | System.Data Namespace | DataColumn | PrimaryKey | DataColumnCollection