簡體   English   中英

如何在C#.NET數據集表列中為唯一值設置約束?

[英]How do I set a constraint for unique values in a C#.NET dataset table column?

我有一個帶有幾個表的數據集。 在我要添加的表之一中,我希望有一個約束,其中僅當我在列中具有唯一值時才允許添加行。

表:用戶列:AutoID,GroupID,UnitID *等

在MVS2008中,我進入了Designer,並將UnitID的Unique屬性設置為true ,但是它不起作用。

我還對在其中添加行的位置進行了硬編碼: this.dataset.Users.UnitIDColumn.Unique = true並嘗試了try / catch(InvalidConstraintException),但是每當我進行硬編碼時,我總是會得到一個異常,甚至如果值是唯一的

如何限制僅添加具有唯一UnitID的行? 提前致謝。

每個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);
}

我相信您可以通過在DataSet設計器中將一列指定為主鍵來實現。

我曾在DataSet設計器中嘗試過添加帶有2列的稱為Test的DataTable,其中之一稱為ID,這是主鍵。 只需選擇它,右鍵單擊並選擇“設置為主鍵”
當我嘗試以下代碼時


PharmacyDataSet.TestDataTable table = new PharmacyDataSet.TestDataTable();
table.AddTestRow(1, "one");
table.AddTestRow(1, "oneagain");
我得到了System.Data.ConstraintException {“列'ID'被限制為唯一。值'1'已經存在。”}

設計人員生成的代碼是

 this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] {this.columnID}, true)); this.columnID.Unique = true; 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM