DBF файлы с дефисами не работают - PullRequest
4 голосов
/ 30 ноября 2011

Пытаясь поработать над чтением и записью файлов DBF, я нашел этот пример: http://www.aspcode.net/reading-dbf-files-in-c

System.Data.Odbc.OdbcConnection oConn = new System.Data.Odbc.OdbcConnection();
oConn.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=D:\databases\;Exclusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH=NO;";
oConn.Open();
System.Data.Odbc.OdbcCommand oCmd = oConn.CreateCommand();
oCmd.CommandText = @"SELECT * FROM D:\databases\thefile.dbf" ;
DataTable dt = new DataTable();
dt.Load(oCmd.ExecuteReader());
oConn.Close();

dataGridView1.DataSource = dt;

Единственная проблема в том, что она не работает, если в имени файла или папки есть тире (-). Есть ли способ заставить этот запрос работать с тире в именах?

например. Файл DBF: C:\Temp\bowlpos\07-10\01-07-10.DBF

1 Ответ

1 голос
/ 30 ноября 2011

попробуйте ниже

using (OleDbConnection cn = new OleDbConnection(
    @"Provider=Microsoft.Jet.OLEDB.4.0;" + 
    @"Data Source=C:\Temp\bowlpos\07-10\01-07-10.DBF;" + 
    @"Extended Properties=dBASE III;"))
using (OleDbCommand cm = cn.CreateCommand())
{
    cn.Open();
    cm.CommandText = "SELECT * FROM [01-07-10]";
    DataTable dt = new DataTable();
    dt.Load(cm.ExecuteReader());
    dataGridView1.DataSource = dt;
}
...