Definir una clave principal para una tabla

Generalmente, una tabla de base de datos sólo tiene una columna, o grupo de columnas, que identifica de manera exclusiva cada fila de la tabla. Esta columna o grupo de columnas de identificación se denomina clave principal.

Cuando se identifica una sola DataColumn como PrimaryKey de una DataTable, la tabla establece automáticamente la propiedad AllowDBNull de la columna en false y la propiedad Unique en true. Para las claves principales de varias columnas sólo se establece automáticamente la propiedad AllowDBNull en false.

La propiedad PrimaryKey de una DataTable recibe como valor una matriz de uno o varios objetos DataColumn, como se muestra en los ejemplos siguientes. En el primer ejemplo se define una sola columna como clave principal.

workTable.PrimaryKey = New DataColumn() {workTable.Columns("CustID")}

' Or

Dim myColArray(1) As DataColumn
myColArray(0) = workTable.Columns("CustID")
workTable.PrimaryKey = myColArray
[C#]
workTable.PrimaryKey = new DataColumn[] {workTable.Columns["CustID"]};

// Or

DataColumn[] myColArray = new DataColumn[1];
myColArray[0] = workTable.Columns["CustID"];
workTable.PrimaryKey = myColArray;

En el siguiente ejemplo se definen dos columnas como clave principal.

workTable.PrimaryKey = New DataColumn() {workTable.Columns("CustLName"), _
                                         workTable.Columns("CustFName")}

' Or

Dim myKey(2) As DataColumn
myKey(0) = workTable.Columns("CustLName")
myKey(1) = workTable.Columns("CustFName")
workTable.PrimaryKey = myKey
[C#]
workTable.PrimaryKey = new DataColumn[] {workTable.Columns["CustLName"], 
                                         workTable.Columns["CustFName"]};

// Or

DataColumn[] myKey = new DataColumn[2];
myKey[0] = workTable.Columns["CustLName"];
myKey[1] = workTable.Columns["CustFName"];
workTable.PrimaryKey = myKey;

Vea también

Crear y utilizar DataTables | DataTable (Clase)