C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 68 を表示中)
■39608 / )  Re[1]: 変更したDataSetの内容をMDBに更新するには?
□投稿者/ 魔界の仮面弁士 (1193回)-(2009/08/11(Tue) 15:20:43)
No39606 (まぐねしうむ さん) に返信
> SELECTで取得したMDBの内容をDataSetに展開し
> DataSet上で変更した物を再度、MDBに更新しようとしているのですが
> なぜか、MDB側に変更されません。

その mdb は、ソリューション内に含めてある物ですか? それとも別管理ですか?

ソリューションに含めてある場合、プロパティ ウィンドウの
[ビルド アクション]および[出力ディレクトリにコピー]の設定によっては、
コンパイル時に、更新前の mdb で上書きされる事があるので、気をつけてください。


> DataSetの中身は変更されているので、DB更新がうまく動いていないと
> 思うのですが何がいけないのでしょうか?
SQL 内に、更新に必要な「主キー」情報が含まれていますか?


> //フラグを全てFalseで初期化する
> for (int i = 0; i < ds.Tables[TableName].Rows.Count; i++)
> {
>      ds.Tables[TableName].Rows[i]["sel"] = false;
> }
この場合には、
  foreach (DataRow row in ds.Tables[TableName].Rows)
  {
       row["sel"] = false;
  }
とした方が、スッキリ書けますよ。


> //DB更新用
> cmd = new OleDbCommandBuilder(adapter);
この後で、adapter.UpdateCommand の内容を確認してみてください。
(特に、CommandText の内容と、個々のParametersの OleDbType / DbType)

返信 編集キー/


管理者用

- Child Tree -