[英]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.