在C#中使用IDataReader读取dbf文件
我正在尝试使用 OleDb 使用数据读取器读取 .dbf 文件,如下所示:
const string OleDbConnectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydbase;Extended Properties=dBASE IV;";
var connection = new OleDbConnection(OleDbConnectionString);
connection.Open();
var command = new OleDbCommand("select * from my.dbf", connection);
reader = command.ExecuteReader();
Console.WriteLine(reader.Read()); // true
Console.WriteLine(reader[0].ToString()); // exception
异常是 InvalidCastException
类型,并表示:无法从 System.__ComObject
转换为 IRowset
。 当我尝试使用 OleDbAdapter
填充表格时,一切正常。
如何使用 IDataReader 读取 .dbf 文件?
I'm trying to read .dbf file with datareader using OleDb like this:
const string OleDbConnectionString =
@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydbase;Extended Properties=dBASE IV;";
var connection = new OleDbConnection(OleDbConnectionString);
connection.Open();
var command = new OleDbCommand("select * from my.dbf", connection);
reader = command.ExecuteReader();
Console.WriteLine(reader.Read()); // true
Console.WriteLine(reader[0].ToString()); // exception
The exception is of InvalidCastException
type and says: Unable to case from System.__ComObject
to IRowset
.
When I tried to use OleDbAdapter
to fill a table everything worked fine.
How do I read .dbf file using IDataReader?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我认为您的路径可能是错误的,因为您在连接字符串中有“C:\mybase”,然后添加“my.dbf”,加起来为“C:\mybasemy.dbf”。
我将提供如何使用数据集而不是阅读器打开和读取 dbf 的代码。
I think your path might be wrong since you have "C:\mybase" in the connectionstring and then add "my.dbf" which adds up to "C:\mybasemy.dbf".
Ill provide code how i open and read a dbf using a dataset instead of a reader.
好的,尝试使用 GetString:
Okay, try using GetString: