.net数据集主键 - 强制执行唯一性?

时间:2008-12-11 14:44:56

标签: c# .net datatable dataset primary-key

我有一个带有一些数据表的小数据集。我从各种DB加载数据表,并有一个我读取的配置文件,以确定我想在给定的数据表上强制执行的主键。如果配置不包含正确的(非唯一的)主键,那么在将主键应用于数据表时如何捕获此事件?目前它似乎允许我应用主键,即使它不是唯一的....

       DataTable dtbl = ds.Tables[t.tblname];

       DataColumn[] pks = new DataColumn[t.Get_Key_Columns().Count];
       int i = 0;
        foreach(DataColumn c in dtbl.Columns)
        {
            if(t.Get_Key_Columns().Exists(delegate(App_Column ac) 
                  {return (ac.column_name == c.ColumnName);}))
            {
                pks[i] = c;
                i++;
            }
        }
        try
        {
            dtbl.PrimaryKey = pks; 
        } 
         catch etc.......

有人指出我缺少的东西吗?感谢

1 个答案:

答案 0 :(得分:2)

如何将它们添加为约束?

dt.Constraints.Add("PKC", Columns, true)

如果仍然允许重复,.HasErrors属性是否提供任何指示?


评论

编辑

最终为OP工作的是这种解决方法:在填充表之前添加约束