DBF文件与破折号不工作
问题描述:
试图做一些工作,阅读和写作DBF文件,我发现这个样本:http://www.aspcode.net/reading-dbf-files-in-cDBF文件与破折号不工作
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
答
试试下面
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;
}
对不起,我会包括片段。 – dkarzon
如果你在连接字符串中指定了文件夹和数据库类型,你应该可以''用'[''''''''''从'[带有连字符的文件]'(不包括驱动器和文件夹) 。 –
然后我得到这个异常: '错误[42S02] [Microsoft] [ODBC dBase驱动程序] Microsoft Jet数据库引擎找不到对象'05 -05-11.DBF'。确保该对象存在,并且正确拼写其名称和路径名.' 只需使用:SELECT * FROM [05-05-11.DBF] 将config文件夹设置为该文件夹。 – dkarzon