Определение первичных ключей (ADO.NET)
База данных обычно содержит столбец или группу столбцов, уникально определяющих каждую строку в таблице. Такие столбцы или группы столбцов называются первичными ключами.
При определении одного столбца DataColumn как PrimaryKey для DataTable в таблице автоматически присваивается свойству AllowDBNull значение false, а свойству Unique — значение true. Для первичных ключей, содержащих несколько столбцов, значение false автоматически присваивается только свойству AllowDBNull.
Свойство PrimaryKey таблицы DataTable получает в качестве значения массив из одного или нескольких объектов DataColumn, как показано в следующих примерах. В первом примере в качестве первичного ключа определяется один столбец.
workTable.PrimaryKey = New DataColumn() {workTable.Columns("CustID")}
' Or
Dim columns(1) As DataColumn
columns(0) = workTable.Columns("CustID")
workTable.PrimaryKey = columns
workTable.PrimaryKey = new DataColumn[] {workTable.Columns["CustID"]};
// Or
DataColumn[] columns = new DataColumn[1];
columns[0] = workTable.Columns["CustID"];
workTable.PrimaryKey = columns;
Следующий пример определяет два столбца в качестве первичного ключа.
workTable.PrimaryKey = New DataColumn() {workTable.Columns("CustLName"), _
workTable.Columns("CustFName")}
' Or
Dim keyColumn(2) As DataColumn
keyColumn(0) = workTable.Columns("CustLName")
keyColumn(1) = workTable.Columns("CustFName")
workTable.PrimaryKey = keyColumn
workTable.PrimaryKey = new DataColumn[] {workTable.Columns["CustLName"],
workTable.Columns["CustFName"]};
// Or
DataColumn[] keyColumn = new DataColumn[2];
keyColumn[0] = workTable.Columns["CustLName"];
keyColumn[1] = workTable.Columns["CustFName"];
workTable.PrimaryKey = keyColumn;