2

環境

私のアプリケーションは、アプリケーションの開始時にデータテーブルを読み取る SQL データベースを使用しています。アプリケーションが SQL DB に接続できない場合は、ローカルの Ms Access .MDB ファイルを使用します。ローカル データベースが古いかどうかを確認する別のスレッドがあります。

SQL 接続から取得した DataTable があります --> 検証済みで動作しています Access データベースにローカルに接続してそこから読み取ることができます --> 検証済みで動作しています

問題/質問

SQL 接続から取得した DataTable を使用してローカル データベースを更新しようとしています。

public static void UpdateLocalDatabase(string strTableName, OleDbConnection MyConnection, DataTable MyTable)
{
    try
    {
        if (CreateDatabaseConnection() != null)
        {
            string strQuery = "SELECT * FROM " + strTableName;
            OleDbDataAdapter MyAdapter = new OleDbDataAdapter();
            OleDbCommandBuilder MyCommandBuilder = new OleDbCommandBuilder(MyAdapter);
            MyAdapter.SelectCommand = new OleDbCommand(strQuery, odcConnection);
            MyAdapter.UpdateCommand = MyCommandBuilder.GetUpdateCommand();
            MyConn.Open();
            MyAdapter.Update(MyTable);
            MyConn.Close();
        }
    }
    catch { }
}

このスニペットをデバッグすると、すべての変数が本来あるべきものになります。

  • strTableName = テーブルの正しい名前
  • MyConn = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=MyLocation;Persist Security Info=True;JET OLEDB:Database Password=MyPassword;"
  • MyTable = は、アプリケーションによってさらに使用される正しいテーブルです

このプロセスは、エラーもキャッチも使用せずに実行されますが、データベースには影響しません。何もしません。

ここにボールを落としたのか、それとも明らかなものを見逃しただけなのか、わかりませんが、MyAdapter.Update() を表示するために多くの記事を閲覧しましたが、それ以上のことはないようです。

どんな助けでも大歓迎です。

ありがとう、

ケビン

4

2 に答える 2

1

バックアップ データベースにアクセスする必要がありますか? SQL Compact Edition を使用すると、2 つの間でコピーするのがはるかに簡単になるからですか?

はい、インストーラーに添付するか、すべてのクライアント マシンに事前にインストールされていることを確認することを意味しますが、無料です。

これが問題である場合は、インストーラー プロジェクトのプロパティに移動し、前提条件をクリックし、SQL コンパクトにチェックを入れて、アプリケーションを使用する前に SQL コンパクトがインストールされるようにするだけです (自分で行う必要はないと思います)。 iv 以前に他のフレームワークでこれを行ったことがあり、必要なソフトウェアをダウンロードするかどうかを尋ねるインストール シールド付きのボックスがポップアップ表示され、ワンクリックで実行する必要があります。

コンパクト データベースの使用方法も必要ですか。

ちなみに、いくつかのハイエンド機能が欠けていますが、平均的なデータベース作業には影響しないはずです。

編集

SQL CE を使用する場合は、データと新しいデータ ソースをクリックして VS でデータベースを簡単に作成できます。手順に従って、求められたときに SQL CE を配置するようにしてください。

それが機能する場合、.sdf データベースが作成されます。

于 2012-05-30T15:09:09.263 に答える
0

ここで、関連する質問の問題を修正するコード スニペットを提供しました: Export SQL DataBase to WinForm DataSet and then to MDB Database using DataSet

于 2012-06-08T12:02:44.200 に答える