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

わんくま同盟

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

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


(過去ログ 68 を表示中)
■39611 / )  Re[2]: 変更したDataSetの内容をMDBに更新するには?
□投稿者/ まぐねしうむ (73回)-(2009/08/11(Tue) 15:30:11)
お返事ありがとうございます。

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

> ソリューションに含めてある場合、プロパティ ウィンドウの
> [ビルド アクション]および[出力ディレクトリにコピー]の設定によっては、
> コンパイル時に、更新前の mdb で上書きされる事があるので、気をつけてください。
ありがとうございます。
昔同じ間違いをしたので大丈夫です。

> SQL 内に、更新に必要な「主キー」情報が含まれていますか?
ご指摘のとおり、設定されていませんでした。

cmd = new OleDbCommandBuilder(adapter);
object obj =cmd.GetUpdateCommand();<=を追加して実行してみたところ
                   見事に例外が発生しました。

> この場合には、
> foreach (DataRow row in ds.Tables[TableName].Rows)
> {
> row["sel"] = false;
> }
> とした方が、スッキリ書けますよ。
ですね。

>>//DB更新用
>>cmd = new OleDbCommandBuilder(adapter);
> この後で、adapter.UpdateCommand の内容を確認してみてください。
> (特に、CommandText の内容と、個々のParametersの OleDbType / DbType)
CommandTextはNullでした。
MDBの中を見てみたところ、テーブルに対してSELECTしているのでは無く
クエリに対してSELECTを実行していました。

そこで質問の内容がコード異なってしまうのですが、
今回の主キーが無い場合にDataSetを更新する方法はあるのでしょうか?
DB側を変更する事が困難なので良い方法があれば教えてください。

よろしくお願いします。

返信 編集キー/


管理者用

- Child Tree -