0

.Net4.0Accessデータベースを使用してVisualStudio2010でアプリケーションを構築しています。

データベースの既存のパスを指定しましたD:/project/record.accdb。アプリケーションをビルドした後、自分のコンピューターにインストールして実行すると、データベースパスエラーが発生します。

F5エラーが表示されることを除いて、アプリケーションは(デバッグ)をクリックしても正常に動作しています。

「パスが見つかりません。」

次の手順を使用してプロジェクトをビルドしました。

  1. 建てる
  2. 「プロジェクト名」を作成する
  3. インストールにはCD/DVDを使用
  4. 終了

この問題を解決するにはどうすればよいですか?

4

1 に答える 1

0

聞こえるように、Dev PCでは正常に動作しますが、デプロイ先の別のマシンでは動作しません。

他のPC(開発ツールがないPC)にMicrosoftAccessがインストールされているかどうかを確認します。Accessをインストールした後、テストを繰り返します。


更新: あなたは最近、パスが機能しないと私に書いています。有効なデータソース文字列を作成するには、次のことを試してください。

  1. デスクトップで、新しい空のテキストドキュメントを作成します(右クリックして、[新規]> [テキストドキュメント]を選択します)
  2. そのドキュメントの名前を変更して、拡張子.UDLを付けます。例:Access.UDL
  3. ファイルをダブルクリックします。「データリンクのプロパティ」が開きます。
  4. 最初のタブ(プロバイダー)に移動し、[ Microsoft Office XX.X Access Database Engine OLE DBプロバイダー]を選択します(XX.Xは使用しているOfficeのバージョンです)。
  5. 2番目のタブ(接続)に移動し、「1。データソースおよび/またはデータの場所を入力する」で、Accessデータベースへのフルパスを指定します。例:C:\Documents and Settings\All Users\My Documents\Database1.accdb
  6. [接続のテスト]ボタンをクリックして、接続が成功することを確認します。
  7. 「OK」でダイアログを閉じます。

その後、NOTEPADを使用してUDLファイル(この例ではAccess.UDL)を開くと、正しいデータソース文字列が表示されます。

[oledb]

; この行以降はすべてOLEDBinitstringです

Provider = Microsoft.ACE.OLEDB.12.0; Data Source = C:\ Documents and Settings \ All Users \ My
Documents \ Database1.accdb; Persist Security Info = False

この文字列は、C#コードで直接使用することも、app.configファイルに保存して読み込むこともできます。パスを動的にする必要がある場合は、次のようにすることができます(次の例ではハードコードされたデータソース文字列を使用しています)。

var strDS=string.Format(
    "Data Source={0}\Database1.accdb;Persist Security Info=False", strPath);

これにより、変数に格納されているパスstrPathがデータソース文字列に挿入されますstrDS。前述のように、app.configからこの文字列をロードすることもできます。

于 2012-11-09T15:55:59.847 に答える