2016-11-06 7 views
-1

ASP.NETでアクセス* .dbfファイルを接続しようとしていますが、データを選択してhtmlで表示しています。しかし、私は接続することはできません。私は、接続文字列に問題があると考えています。C#で.dbfファイルに接続しません。

OdbcConnection conn = new OdbcConnection(); 
conn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.12.0;Data Source=c:\Data;Extended Properties=dBASE 5.0;User ID=Admin;Password=;"; 

conn.Open(); 

私は次のエラーを取得する:

ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified

残念ながら、古い質問に投稿されたソリューションのなしなし私の問題を解決していません。

私はVisual Studio Community 2015、Windows 10 64ビットを使用しています。

私は、プロバイダーが間違っている可能性があります。しかし、私はこの話題ではあまりよくありませんので、適切な方法でこれを行う方法はわかりません。私はいくつかの段階的な指示と有用なアドバイスに非常に感謝しています。

* .dbfファイルは、ここではアーカイブからファイルの1つです: DBF File

+0

[このサイト](https://www.connectionstrings.com/dbf-foxpro/)を参照し、別の接続文字列(プロバイダ)を試してください。 – MFatihMAR

+1

接続文字列はこれだけです - 'Data Source = c:\ Data' - ファイルの名前を指定する必要はありませんか? – ChrisF

答えて

0

ジェットのみ32ビット・モードで4.0作品。 32ビットモードで動作するようにアプリケーションを更新する必要があります。 connectionstrings.comからrunning jet in 32 bit mode on a 64 bit machineについてこの情報を確認してください。

microsoft dbf connectionを示すconnectionstrings.comからこの参照を見ることができます。 dbaseのバージョンで使用しているように、5.0の代わりにローマ字の数値を使用しているようです。

0

私はこのコードに接続することができましたが、VFPOLEDBドライバをインストールする必要がありました。

private DataTable myTable() 
{ 
     OleDbConnection conn = new OleDbConnection("Provider=VFPOLEDB.1;Data Source=c:\\Data\\;Extended Properties=dBASE IV;User ID=;Password=;"); 
     conn.Open(); 

     string query = "SELECT * FROM d:\\data\\Earthquakes1970"; 
     OleDbCommand cmd = new OleDbCommand(query, conn); 

     DataTable dt = new DataTable(); 
     dt.Load(cmd.ExecuteReader()); 

     conn.Close(); 

     return dt; 
    } 
+0

接続は、データテーブル(.dbf)ファイルが配置されているPATHを指している必要があります。あなたのクエリは、完全修飾パス参照なしでテーブル名を参照するだけです。扱いやすく、特にパスが変更された場合は、パスの接続文字列を変更するだけです。 – DRapp

関連する問題