I'm trying to read a dBase III .dbf file using .NET and Winforms and nothing I've tried seem to work. I tried four different connection methods and every one of them hangs on Open
method. No exceptions, no timeouts, no event messages, nothing. The form just sits there. Any ideas about what could be wrong?
Here's the methods I've tried. The .dbf file is at 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();
}