3

いくつかのデータテーブルを含む小さなデータセットがあります。さまざまな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.......

誰かが私が欠けているものを指摘していますか? ありがとう

4

1 に答える 1

2

それらを制約として追加するのはどうですか?

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

それでも重複が許可される場合、.HasErrors プロパティは何かを示していますか?


コメントから編集:

OPで最終的に機能したのは、この回避策でした。テーブルに入力する前に制約を追加します。

于 2008-12-11T14:52:23.287 に答える