質問者
VB Expressでmdf(SQL)ファイルに保存できない・・・

質問
-
VB Expressでmdf(SQL)にデータを保存できなく困っています。
Dim adapter As New XXXDataSetTableAdapters.yyyTableAdapter
adapter.Update(XXXDataSet.yyy)
ではエラーは出ないのですが、データのプレビューでは保存されていません。
(DataGridViewでの表示、追加、削除は出来ています。)
ExpressでのSQLの使用方法をまだ理解していないのですが
データアダプタを使用してデータセットの内容をmdf(SQL)に保存する時の
データ接続(Connection)かUpdateCommandに問題があると思っています。
この場合、どこから確認していけばよいか教えて頂けないでしょうか
よろしくお願いします。
すべての返信
-
どっとねっとふぁん 様、囚人 様、ありがとうございます。
データの変更/追加/削除等はどのように行っていますか?
Updateは現在のデータセット(データテーブルかな?)の中をみて、取得時から変更のあったデータだけをデータベースに更新しにいくので、このデータセットの中が正しく変更されているかどうかをまず調べる必要があると思います。DataGridViewから変更・削除・追加を行っています。
説明が足りなかったと思うので補足すると、
DataGridViewで追加・変更等を行った後、
HasChanges=Trueになっており、adapter.Updateを行ったあとでは
HasChanges=Falseになります。また、adapter.fillを行うと追加・変更後のデータが表示されています。
これでデータセットの中が変更されていると考えてもよいのでしょうか・・・
adapter.Update(XXXDataSet.yyy)
を行う直前の、yyy はきちっと更新されているかどうか。(デバッガで止めてみる等)adapter.UpdateCommmand.CommandText
には何が設定されているのか。CommandTextの中身は勝手に設定されてる思っていたので確認していませんでした。
もう少し調べて見ます。
よろしくお願いします。
-
trapemiya様、ありがとうございます。
ソリューションエクスプローラ上でデータファイル(.mdf)を右クリックしてプロパティを表示し、「出力ディレクトリにコピー」の設定を、「常にコピーする」から「新しい場合はコピーする」へ変更する 。
(参考)
ローカル データの概要
http://msdn2.microsoft.com/ja-jp/library/ms233817(VS.80).aspx元のmdfファイルを「常にコピーする」からmdfファイルを更新しても
次のデバッグ時には更新できていないように勘違いしていたのですね・・・
(いろいろと新しい事が多いので覚えるのが大変です。)
ありがとうございました。