Как установить ограничение для уникальных значений в столбце таблицы набора данных C # .NET? - PullRequest
1 голос
/ 30 сентября 2010

У меня есть один набор данных с несколькими таблицами.В одной из таблиц, к которым я добавляю, я хотел бы иметь ограничение, в котором он будет позволять добавлять строку только в том случае, если у меня есть уникальное значение в столбце.

Таблица: столбцы пользователей: AutoID, GroupID, UnitID * и т. Д.

В MVS2008 я пошел в Designer и установил для свойства уникальности UnitID значение true, но оно не сработало.

I 'Мы также жестко запрограммировали, где я добавляю строку в: this.dataset.Users.UnitIDColumn.Unique = true и пытались попробовать / перехватить (InvalidConstraintException), но всякий раз, когда я жестко кодирую его, я всегда получаю исключение, даже если значение уникально или нет

Как ограничить добавление только строки с уникальным UnitID?Заранее спасибо.

Ответы [ 2 ]

0 голосов
/ 30 сентября 2010

Я полагаю, что этого можно добиться, назначив столбец в качестве первичного ключа в конструкторе DataSet.

Я пытался в конструкторе DataSet добавить DataTable с именем Test с 2 столбцами, один из которых называется IDкоторый является первичным ключом.Просто выберите его, щелкните правой кнопкой мыши и выберите «Установить как первичный ключ»Когда я попробовал следующий код


PharmacyDataSet.TestDataTable table = new PharmacyDataSet.TestDataTable();
table.AddTestRow(1, "one");
table.AddTestRow(1, "oneagain");
, я получил System.Data.ConstraintException {«Идентификатор столбца» должен быть уникальным. Значение «1» уже присутствует. »}

Код, созданный конструктороместь


this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] {this.columnID}, true));
this.columnID.Unique = true;
0 голосов
/ 30 сентября 2010

за MSDN

private void AddConstraint(DataTable table)
{
    UniqueConstraint uniqueConstraint;
    // Assuming a column named "UniqueColumn" exists, and 
    // its Unique property is true.
    uniqueConstraint = new UniqueConstraint(
        table.Columns["UniqueColumn"]);
    table.Constraints.Add(uniqueConstraint);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...