我正在尝试使用 .NET 和 Winforms 读取 dBase III .dbf 文件,但我尝试过的任何方法似乎都不起作用。我尝试了四种不同的连接方法,每一种都挂在Open
方法上。没有异常,没有超时,没有事件消息,什么都没有。表格就在那里。关于什么可能是错的任何想法?
这是我尝试过的方法。.dbf 文件位于 d:\db:
private void read1()
{
string c = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\db\\;Extended Properties=dBASE III";
OleDbConnection conn = new OleDbConnection(c);
conn.Open();
MessageBox.Show("ok");
conn.Close();
}
private void read2()
{
System.Data.Odbc.OdbcConnection oConn = new System.Data.Odbc.OdbcConnection();
oConn.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=D:\db;Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";
oConn.Open();
System.Data.Odbc.OdbcCommand oCmd = oConn.CreateCommand();
oCmd.CommandText = @"SELECT * FROM D:\db\Poi.dbf";
DataTable dt = new DataTable();
dt.Load(oCmd.ExecuteReader());
MessageBox.Show(dt.Rows.Count.ToString());
oConn.Close();
}
private void read3()
{
System.Data.Odbc.OdbcConnection oConn = new System.Data.Odbc.OdbcConnection();
oConn.ConnectionString = @"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=d:\db;";
oConn.Open();
MessageBox.Show("ok");
oConn.Close();
}
private void read4()
{
System.Data.Odbc.OdbcConnection oConn = new System.Data.Odbc.OdbcConnection();
oConn.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};datasource=d:\db\";
oConn.Open();
System.Data.Odbc.OdbcCommand oCmd = oConn.CreateCommand();
oCmd.CommandText = @"SELECT * FROM D:\db\Poi.dbf";
DataTable dt = new DataTable();
dt.Load(oCmd.ExecuteReader());
MessageBox.Show(dt.Rows.Count.ToString());
oConn.Close();
}