sdf ファイルで DB の構造とデータを表す c# の DataSet に問題があります。DBで自動テストを行っているので、テーブルに行を追加し、テストを実行して、テーブルから追加された行を削除する必要があります。
テーブル スキーマ:
Num - ID, autoincrementing, primary key
Name - string
Photo - Image (binary)
私のコードは次のとおりです。
adapter.Fill(set);
row1 = datatable.Rows.Add(null, "Name1", File.ReadAllBytes(@"Images\photo1.jpg"));
row2 = datatable.Rows.Add(null, "Name2", File.ReadAllBytes(@"Images\photo2.jpg"));
adapter.Update(set);
... perfoming test...
adapter.Fill(set);
row1.Delete();
row2.Delete();
adapter.Update(set);
ただし、追加された行はまだベースにあります。使ってみた
datatable.Rows.Remove(row1);
datatable.Rows.Remove(row2);
しかし、DB の実際の自動インクリメント値とは異なる、行 1 と行 2 の「Num」値が間違っているため、no- such-row-exception が発生します。
- 行を追加するときに Num の真の値を取得するにはどうすればよいですか?
- 「行を追加する」->「何かを実行する」->「追加された行を削除する」問題のよりスマートな解決策はありますか?
前もって感謝します。