4

32 ビット .NET アプリでは、次の OLEDB 接続文字列を使用して、ADO.NET 経由で CSV ファイルに接続できます。

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\foo;"

またはこのODBCのもの:

"Driver={{Microsoft Text Driver (*.txt; *.csv)}};Dbq=c:\foo"

ただし、OLEDB Jet ドライバーまたは ODBC テキスト ドライバーのいずれかの 64 ビット バージョンはないようです。

CSV を 1 行ずつ解析することも、32 ビット モードでアプリを実行することもできますが、理想的には、64 ビットで実行される別のドライバーを見つけたいだけです。

何か案は?

4

5 に答える 5

2

私はこれとまったく同じ問題を抱えていましたが、多くの試行錯誤の末、これが機能することがわかりました:

1.アドホック手順を有効にする

sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

2. このファイルをサーバーにインストールします。

http://www.microsoft.com/downloads/en/details.aspx?familyid=C06B8369-60DD-4B64-A44B-84B371EDE16D&displaylang=en

3. 次のクエリ形式を使用します。

SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=C:\SQL\;HDR=Yes;','SELECT * FROM [test.csv]');

4. OLE オートメーション プロシージャを有効にします。

sp_configure 'show advanced options', 1;
GO
RECONFIGURE with override
GO
sp_configure 'Ole Automation Procedures', 1;
GO
RECONFIGURE with override;
GO
于 2011-06-08T19:21:50.377 に答える
1

ドライバーではありませんが、Sebastien Lorion の CSV リーダーには満足しています。64 ビット環境で使用したことはありませんが、互換性の問題は認識していません。

http://www.codeproject.com/KB/database/CsvReader.aspx

于 2009-01-12T19:13:19.260 に答える
1

アレクシス、

そもそもドライバーは必要ですか?CSV ファイルを 1 行ずつ読み取る必要がある場合は、無料のパーサーが多数あります。CSV も書き出す必要がある場合は、FileHelpersをチェックしてください。

于 2009-01-12T18:05:58.850 に答える
0

幸運なことに、2010年12月にMicrosoftはCSVおよびXLSXファイル用の64ビットOLEDBドライバーを公開しました。

ダウンロードリンク、インストールの詳細、接続文字列などについては、この回答を参照してください。

于 2011-02-08T18:01:35.803 に答える
0

Microsoft Access データベースへのアクセスに関しては同じ問題があったため、アプリケーションを 32 ビットに変換する必要がありました。これが機能することはわかっていますが、このソリューションが必要ない場合があります。誰かがこの質問に対する答えを知っているなら、私もそれを聞きたいです.

于 2009-01-12T16:02:01.017 に答える