1

vfpデータベースに接続するアプリケーションをまとめています。app.configファイルで接続文字列を定義すると正常に機能します-

<add name="vFoxProSource" connectionString="Provider=vfpoledb;Data Source=C:\directory\database.dbc;Collating Sequence=machine;" providerName="System.Data.OleDb.OleDbConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

最終的に、ソースへのパスは動的になるため、ConnectionStringSettingsを使用して接続文字列を定義しようとしています。私は次のコードを持っています-

ConnectionStringSettings vfpConnectionStringSettings = new ConnectionStringSettings();
vfpConnectionStringSettings.ProviderName = "System.Data.OleDb.OleDbConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089";
vfpConnectionStringSettings.ConnectionString = ".. my connection string...";

このコードを実行すると、次のエラーが発生します-

The 'System.Data.OleDb.OleDbConnection, System.Data, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' provider is not registered on the local machine.

正常に機能している接続文字列からプロバイダー名を直接取得しようとしましたが、同じエラーが発生します。なぜそれが一方の方法で機能しているのに、もう一方の方法では機能していないのか、誰かが知っていますか?

ありがとう

4

2 に答える 2

2

ここでの問題は、ProviderNameではなく、接続文字列の問題であることが判明しました。ProviderNameでエラーが発生していたため、そこで問題があると誤って想定しましたが、接続文字列に欠落している部分がありました。

ありがとう

于 2010-10-29T18:23:44.030 に答える
0

将来あなたを助けるかもしれない1つのサイトはhttp://connectionstrings.com/です

于 2010-10-29T19:05:36.487 に答える