2017-05-26 6 views
0

私は以前にfoxproデータベースに接続しましたが、.dbfファイルと.idxファイルの両方を持つものだけを接続しました。C#VFP OLEDB接続文字列の問題(DBFとCDXとDBFとIDX)

私は、Visual FoxPro 7.0のMicrosoft OLE DB Providerを登録し、コードの次のタイプを使用します。

string sqlSTR = "SELECT * FROM TableName"; 
    string strConnect = @"Provider=VFPOLEDB.1;Data Source=C:\Stuff.dbf;Extended Properties=dBASE IV;" 

をし、接続を開きます。ただし、このファイルには.dbfファイルと.cdxファイル(オンラインで読むことはデータベースの構造のようです)があります。私は上記の接続文字列と次のコードを使用する場合:

OleDbConnection myConn = new OleDbConnection(strConnect); 
myConn.Open() 

がエラーか何かが、プログラムの実行は、ここでハングアップしません。 dbf + idxファイルが存在する(cdxではなく)ファイルに接続している同じプログラムのいくつかの部分があります。私は間違って何を訂正する必要があるのですか?

データ・アダプタbtwを使用して後で操作するためにsqlSTRを使用します。

+0

接続文字列のdBase IVへの参照が間違っていることは間違いありません。その部分を使わずに試してみてください。 –

+1

実際には、CDXファイルはインデックスファイルであり、データベースの構造ではありません。 – Hank

答えて

1

同じ問題を抱えている人は誰でもこの回答を投稿してください。

dBase IVのリファレンスは実際にはどちらの方法にも関係ありません。これは古いDBF + IDXのfoxproファイルの組み合わせで必要となります(VFPの早期期、またはVFPがfoxproの2.0日前に戻る前に考える必要があります)。

私が本当に欠けていたのは、同じディレクトリに関連付けられた* .dbc、* .dct、* .dcxファイルでした。これらのファイルは実際にはStuff.dbf/Stuff.cdxファイルとは異なるベースファイル名だったので、私は捨てました。

私はちょうどtry {} catch {}を使用して例外をmessageboxに置いて、探していたファイル(別名)を教えてくれました。

ありがとうございました!

1

接続文字列が間違っています。それは次のようになります:

string sqlSTR = "SELECT * FROM TableName"; 
string strConnect = @"Provider=VFPOLEDB;Data Source=C:\;" 

データベースファイル(または他のファイル)の場所としてc:\を使用することは疑問です。

+0

@J W、Cetinは正しいです。問題は、接続が、ファイルが配置されているPATHを指し示すべきであり、照会している表の完全な名前ではないということです。私はC:\のルートに接続を単純化したと仮定することができますが、それ以外の場合は別のパスになります。 – DRapp

関連する問題