3

友達...以来、

 OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
 Data Source=C:\Users\Tushar\Documents\db.accdb");

この文字列は、C# で ms アクセス データベース接続に使用されます。データベースの場所が既にわかっていることを確認してください。動作します。

しかし、データベースが任意の場所にあるときにアプリケーションを実行したい...(つまり)任意の場所から自動的にデータベースの場所を取得する必要がある(ユーザーがプロジェクトを任意の場所に保存する場合)

仲間が助けてくれませんか..

前もって感謝します..

4

4 に答える 4

1

DB の場所を特定するロジックを C# で作成することをお勧めします。理解すれば、文字列連結と同じくらい簡単です。

var dbLocation = GetDbLocation();
OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
                              Data Source=" + dbLocation ");

GetDbLocation()構成ファイルから情報を取得するか、他の方法で決定することができます (DB の場所を決定するのに十分な情報が提供されていません)。

于 2013-04-02T12:17:17.450 に答える
0

データベースを App_Data にコピーします

次のコードを使用します。

string path = Server.MapPath("~/App_Data") + "\\" + "db.accdb";

OleDbConnection vcon = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;
                               Data Source="+path +"");

この助けを願っています。

于 2013-04-02T12:19:31.190 に答える
0

以下のようにしてみてください、それはあなたを助けるでしょう...

string path = Environment.CurrentDirectory;
            path = path + "\\db.accdb";
            OleDbConnection vcon = new 
OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + path);

アプリと DB の EXE を同じ場所に配置し、上記のコードを使用します...

データベースをフォルダ Database に配置する場合は、以下のようにしてください...

string path = Environment.CurrentDirectory;
            path = path + "\\DataBase\\db.accdb";
            OleDbConnection vcon = new 
OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + path);
于 2013-04-02T12:20:51.933 に答える
0

接続文字列を介してデータベースの場所を提供する必要があります。OleDbConnection がデータベース ファイルの場所を知る方法は他にありません。

ここでできることは、これらの方法のいずれかで実行時に接続文字列を指定することです。

  1. 接続文字列のコレクションを自由に使用できます。それらはすべて事前に定義された場所を指しており、そのうちの 1 つを動的に指定/選択します。すなわち

        OleDbConnection cn = new OleDbConnection();
        cn.ConnectionString = variable;
    
  2. 単一の接続文字列の単純な文字列連結。

いずれにせよ、事前に場所を決定する必要があります。自動でシステム全体の.accdbファイルを検索してプラグインする魔法のコードはありません。そのようなコードを書いたとしても、それはとにかく壊れたコードまたは見事に特定のコードになります。

そのため、web.config で connectionStrings (db ファイル (のコピー) を配置したすべての可能な事前に決定された場所) を管理することをお勧めします。

または、データベース テーブルを作成して、考えられるすべての接続文字列を格納し、単純なユーザー インターフェイスを使用してエントリを追加したり、エントリを削除したりできます。

于 2013-04-02T12:23:05.880 に答える