DataAdapter
を使用して、プライマリキーを持つテーブルからDataSet
を入力しています。ADO.NET DataSetプライマリキー違反
プライマリキー列の値を別の行に既に存在する値に変更すると、プライマリキー違反エラーは発生しません。
プライマリキーの値が重複するように行を変更した後にDataSet.AcceptChanges()
を呼び出すと、プライマリキー違反エラーは発生しません。
これはなぜですか?そのようなあなたは、ソースからの根本的なスキーマについてDataSet
を伝える必要があり、主キー制約など何らかの制約を強制するために
string sqlcommand = "select * from itemmaster";//itemaster contains id field which is primary key//
SqlConnection cn = new SqlConnection(connstring);
cn.Open();
SqlCommand cmd = new SqlCommand(sqlcommand, cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
ds.Tables[0].Rows[4]["ID"] = "2"; // value 2 already exists in another row
、なぜあなたは 'DataSet'sの代わりに、ORMで開発を行っていますか? –
http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-postsを参照してください。 –
また、コードを表示すると、より良い回答が得られます。問題を示す小さな例を作成し、ここに例を投稿してください。 –