none
VB Expressでmdf(SQL)ファイルに保存できない・・・ RRS feed

  • 質問

  •  

    VB Expressでmdf(SQL)にデータを保存できなく困っています。

    Dim adapter As New XXXDataSetTableAdapters.yyyTableAdapter
    adapter.Update(XXXDataSet.yyy)
     

    ではエラーは出ないのですが、データのプレビューでは保存されていません。

    (DataGridViewでの表示、追加、削除は出来ています。)

    ExpressでのSQLの使用方法をまだ理解していないのですが

    データアダプタを使用してデータセットの内容をmdf(SQL)に保存する時の

    データ接続(Connection)かUpdateCommandに問題があると思っています。

    この場合、どこから確認していけばよいか教えて頂けないでしょうか

    よろしくお願いします。

     

    2006年4月6日 0:45

すべての返信

  • データの変更/追加/削除等はどのように行っていますか?
    Updateは現在のデータセット(データテーブルかな?)の中をみて、取得時から変更のあったデータだけをデータベースに更新しにいくので、このデータセットの中が正しく変更されているかどうかをまず調べる必要があると思います。

     

    2006年4月6日 1:50
  • adapter.Update(XXXDataSet.yyy)
    を行う直前の、yyy はきちっと更新されているかどうか。(デバッガで止めてみる等)

    adapter.UpdateCommmand.CommandText
    には何が設定されているのか。

    これらを調べてみてください。

    2006年4月6日 1:54
  • どっとねっとふぁん 様、囚人 様、ありがとうございます。

     データの変更/追加/削除等はどのように行っていますか?
    Updateは現在のデータセット(データテーブルかな?)の中をみて、取得時から変更のあったデータだけをデータベースに更新しにいくので、このデータセットの中が正しく変更されているかどうかをまず調べる必要があると思います。

    DataGridViewから変更・削除・追加を行っています。

    説明が足りなかったと思うので補足すると、

    DataGridViewで追加・変更等を行った後、

    HasChanges=Trueになっており、adapter.Updateを行ったあとでは

    HasChanges=Falseになります。また、adapter.fillを行うと追加・変更後のデータが表示されています。

    これでデータセットの中が変更されていると考えてもよいのでしょうか・・・

    adapter.Update(XXXDataSet.yyy)
    を行う直前の、yyy はきちっと更新されているかどうか。(デバッガで止めてみる等)

    adapter.UpdateCommmand.CommandText
    には何が設定されているのか。

    CommandTextの中身は勝手に設定されてる思っていたので確認していませんでした。

    もう少し調べて見ます。

    よろしくお願いします。

    2006年4月6日 3:28
  • Fillで正しく更新後のデータが表示されるということは、データベースはきちんと更新されているのでしょう。

    以下を試してみて下さい。

    ソリューションエクスプローラ上でデータファイル(.mdf)を右クリックしてプロパティを表示し、「出力ディレクトリにコピー」の設定を、「常にコピーする」から「新しい場合はコピーする」へ変更する 。

    (参考)
    ローカル データの概要
    http://msdn2.microsoft.com/ja-jp/library/ms233817(VS.80).aspx

    2006年4月6日 5:13
    モデレータ
  • trapemiya様、ありがとうございます。

    ソリューションエクスプローラ上でデータファイル(.mdf)を右クリックしてプロパティを表示し、「出力ディレクトリにコピー」の設定を、「常にコピーする」から「新しい場合はコピーする」へ変更する 。

    (参考)
    ローカル データの概要
    http://msdn2.microsoft.com/ja-jp/library/ms233817(VS.80).aspx

    元のmdfファイルを「常にコピーする」からmdfファイルを更新しても

    次のデバッグ時には更新できていないように勘違いしていたのですね・・・

    (いろいろと新しい事が多いので覚えるのが大変です。)

    ありがとうございました。

    2006年4月6日 6:41