【解決方法】データベースパスエラーなしで、開発用コンピューター以外の別のコンピューターにアクセスデータベースを使用して C# アプリをインストールして実行するにはどうすればよいですか?


Visual C#2008 Express をフロント エンドとして、Microsoft Access 2010 をバック エンドとして使用して、交通機関の発券システムを開発しました。
アプリケーションは、現在 Access データベースにあるすべてのデータを保存している開発用 PC で正常に動作し、最終的に領収書を出力しますが、開発用 PC で動作するようにデータベースが正常に機能している別のコンピューターでこのアプリケーションを正常に実行する方法が問題です。

アプリケーションの実行時にアプリケーションをパブリッシュして別のコンピューターにデプロイすると、データベース パスが見つからないことを示すエラーがスローされます。

この問題の解決に関して、深刻な助けが必要です。

私が試したこと:

C#
connection.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\MY CLASS\Downloads\good work\new work\MDIFORM\busdata.accdb;
            Persist Security Info=False;";

解決策 1

データベースが適切なフォルダーにコピーされていることを確認する必要があります。

データベースを Visual Studio プロジェクトに含めた (つまり、解決策 エクスプローラーに表示されている) 場合は、ファイルをクリックして[プロパティ]ウィンドウに移動し、設定を変更できます。 Copy to Output Directory 「常にコピー」に。

そうすれば、データベースはプロジェクトの一部としてデプロイされます。

または、展開スクリプトのステップとしてファイルをコピーします。ターゲット PC にフォルダーを作成する必要がある場合があります。 これを簡単にするには、接続文字列を App.Config ファイルに移動します (そして、それが Copy Always それも)

または、ターゲット PC が接続されているネットワーク ドライブにデータベースを保存します (ただし、Access では推奨されません)。

解決策 2

アプリケーションがその特定の場所にデータベースをインストールしない限り (これはありそうもなく、良い考えでもありません)、データベース ファイルを見つけることができません。 試行した場合、アプリを実行しているユーザーがフォルダーへのアクセス許可を自動的に持っている可能性は低いため、見つけることができない可能性が非常に高くなります (彼のユーザー名がたまたま「MY CLASS」でない限り)。
ここを参照してください: データはどこに保存すればよいですか?[^] – それを保管するためのより良い場所をいくつか提案し、それらにアクセスする方法を示します!

解決策 3

「ネットワーク化されたアプリとデータベース」のレッスンをスキップしたようです。

問題は、開発用 PC のローカル ディスクへのデータベース パスをハードコーディングしたことです。
データベースはサーバー上にある必要があります。

解決策 4

「C:\Users\MY CLASS\Downloads\good work\new work\MDIFORM」

上記のパスを |DataDirectory| に置き換えます。 プロジェクトのすべてのフォームで。

以下を確認してください。
connection.ConnectionString = @”Provider=Microsoft.ACE.OLEDB.12.0;データ ソース=|DataDirectory|\busdata.accdb;
Persist Security Info=False;”;

コメント

タイトルとURLをコピーしました