■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)
|