聞こえるように、Dev PCでは正常に動作しますが、デプロイ先の別のマシンでは動作しません。
他のPC(開発ツールがないPC)にMicrosoftAccessがインストールされているかどうかを確認します。Accessをインストールした後、テストを繰り返します。
更新:
あなたは最近、パスが機能しないと私に書いています。有効なデータソース文字列を作成するには、次のことを試してください。
- デスクトップで、新しい空のテキストドキュメントを作成します(右クリックして、[新規]> [テキストドキュメント]を選択します)
- そのドキュメントの名前を変更して、拡張子
.UDL
を付けます。例:Access.UDL
- ファイルをダブルクリックします。「データリンクのプロパティ」が開きます。
- 最初のタブ(プロバイダー)に移動し、[ Microsoft Office XX.X Access Database Engine OLE DBプロバイダー]を選択します(XX.Xは使用しているOfficeのバージョンです)。
- 2番目のタブ(接続)に移動し、「1。データソースおよび/またはデータの場所を入力する」で、Accessデータベースへのフルパスを指定します。例:
C:\Documents and Settings\All Users\My Documents\Database1.accdb
- [接続のテスト]ボタンをクリックして、接続が成功することを確認します。
- 「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からこの文字列をロードすることもできます。