none
TableAdapterのUpdateメソッドを実行しても、.mdbが更新できません・・・ RRS feed

  • 質問

  • お世話になります。
    VS2008でC#を使用しております。
    下記のようなコードでMDBにデータが追加されませんので
    何とかお力添えいただきたいと思い、投稿いたしました。

    従来はSQL文を発行していたのですが、
    工数削減のためにできるだけ自動生成したものを使いたいと思ったことがきっかけです。

    ■VS上でやったこと。
    ・新規にWindowsフォームアプリケーションのプロジェクトを作成。
    ・プロジェクトのプロパティで.NET Frameworkのバージョンを2.0に指定して保存(配布先の都合・・・)。
    ・Linqなどの参照物を削除して、ビルドが正常終了するようにした。
    ・Form1にbutton1を貼り付ける。
    ・[データ]-「新しいデータソースの追加」でDB1.mdbを新規作成してプロジェクトに登録。
    ・「新しい項目の追加」でプロジェクトにDataSetを追加。DB1DataSet.xsdが生成される。

    ■書いたソース

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace WindowsFormsApplication1
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }

            private void button1_Click(object sender, EventArgs e)
            {
                DB1DataSetTableAdapters.テーブル1TableAdapter adp = new DB1DataSetTableAdapters.テーブル1TableAdapter();
                DB1DataSet.テーブル1DataTable tbl = new DB1DataSet.テーブル1DataTable();
                DB1DataSet.テーブル1Row row = tbl.Newテーブル1Row();
                row.a = "AAA";
                row.b = "BBB";
                tbl.Addテーブル1Row(row);
                //テーブル更新
                adp.Update(row);
            }
        }
    }

    不備な点をどうかご指摘いただけないでしょうか。
    よろしくお願いいたします。

    2011年12月14日 8:17

回答

  • エラーは発生しますか? しませんか?

    発生しているのならそれを記述してください。

    発生しないのなら更新されているでしょう。期待している場所とは異なるDB1.mdbを更新している可能性があります。

    • 回答としてマーク spna 2011年12月15日 11:31
    2011年12月14日 8:27
  • mdbが更新されないというのはほぼFAQに近いほど定期的に発生し、ほとんどの場合が以下が該当しますので、参考にしてみて下さい。

    既存MDB(ACCESS)のテーブルへの物理的な更新ができない → VB.net 2005
    http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/b3803361-cdbc-4aa6-a6c3-89f8a8546eaa/

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク spna 2011年12月14日 9:15
    2011年12月14日 8:43
    モデレータ
  • データセットのデザイナで当該のTableAdapterを右クリックし、「構成」で再設定して下さい。

    #質問の項目が変わる場合は新しくスレッドを立てるようにして下さいね。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク spna 2011年12月14日 9:32
    2011年12月14日 9:29
    モデレータ

すべての返信

  • エラーは発生しますか? しませんか?

    発生しているのならそれを記述してください。

    発生しないのなら更新されているでしょう。期待している場所とは異なるDB1.mdbを更新している可能性があります。

    • 回答としてマーク spna 2011年12月15日 11:31
    2011年12月14日 8:27
  • mdbが更新されないというのはほぼFAQに近いほど定期的に発生し、ほとんどの場合が以下が該当しますので、参考にしてみて下さい。

    既存MDB(ACCESS)のテーブルへの物理的な更新ができない → VB.net 2005
    http://social.msdn.microsoft.com/Forums/ja-JP/vbgeneralja/thread/b3803361-cdbc-4aa6-a6c3-89f8a8546eaa/

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク spna 2011年12月14日 9:15
    2011年12月14日 8:43
    モデレータ
  • ご教授ありがとうございました!
    まさに頂いたリンクの中の
    >Bin/Debug もしくは Bin/Release フォルダに mdb ファイルのコピーが作られて、それが更新されているのでは
    >ないですか?
    に該当いたしました。
    ありがとうございます。
    ちなみにですが、mdb内のテーブルの仕様を変更した場合、自動生成されたコードを更新するにはどうそればよいのでしょうか・・・
    あわせてご教授賜れば幸いです。。
    2011年12月14日 9:15
  • データセットのデザイナで当該のTableAdapterを右クリックし、「構成」で再設定して下さい。

    #質問の項目が変わる場合は新しくスレッドを立てるようにして下さいね。

     


    ★良い回答には回答済みマークを付けよう! わんくま同盟 MVP - Visual C# http://d.hatena.ne.jp/trapemiya/
    • 回答としてマーク spna 2011年12月14日 9:32
    2011年12月14日 9:29
    モデレータ
  • 度重なるご指導、

    まことにありがとうございます!!

    承知いたしました・・・

    (解決)

    2011年12月14日 9:33
  • 質問にある「配布先の都合」という言葉が引っかかりました。

    配布先では書き込み先のDB1.mdbのPathがまた異なるのではありませんか?

    # 私のコメントは回答の役に立ちませんでしたか;;

    2011年12月14日 13:13
  • 佐祐理 さま

    大変失礼いたしました・・

    ご回答、ありがとうございました!

    「配布先の都合」ですが、

    配布先の環境はAD配下でインストールが制限されており、

    かつ、.net Framework2.0に固定されております。

    ですので、clockonceで発行してインストールさせることができないために、

    ファイルサーバーにdebugフォルダの中身を丸々UPして

    フォルダごとローカルにコピーして使ってもらおうと思っております・・ 

    2011年12月15日 11:37
  • そうすると、コピー先依存でDB1.mdbの置かれる場所が変わりませんか? 利用者全員が同じ場所にコピーするのでしょうか?
    2011年12月16日 0:08
  • お世話になっております。

    debugフォルダにmdbが出力され、debugフォルダごとコピーして使用していただこうと思っておりますので、

    その分は心配ないかと思っております。

    お力添えありがとうございました!

    (解決)

    2011年12月19日 10:36