Microsoft.ACE.OLEDB.12.0 プロバイダーを使用して、64 ビット OS で dbf ファイルに接続しようとしています。
私が書いた
[Test]
public void CustomDbfReader()
{
string filepath = @"K:\data";
var dataTable = new DataTable();
string connectionString =
"Provider=Microsoft.ACE.OLEDB.12.0;Extended Properties=dBASE IV;Data Source='" + filepath +"'" ;
using (var oledbConnection = new OleDbConnection(connectionString))
{
oledbConnection.Open();
string stringCommadn = string.Format(@"select * from filename.dbf");
var oleDbCommand = new OleDbCommand(stringCommadn, oledbConnection);
var oleDbDataAdapter = new OleDbDataAdapter
{
SelectCommand = oleDbCommand
};
oleDbDataAdapter.Fill(dataTable);
}
Assert.IsNotEmpty(dataTable.Rows);
}
この例外が発生します
System.Data.OleDb.OleDbException : Microsoft Access データベース エンジンは、オブジェクト 'CardifOrigin.dbf' を見つけることができませんでした。オブジェクトが存在すること、およびその名前とパス名のつづりが正しいことを確認してください。「CardifOrigin.dbf」がローカル オブジェクトでない場合は、ネットワーク接続を確認するか、サーバー管理者に連絡してください。
パスとファイル名の両方が存在すると確信しています。
どうしたの?