我正在使用以下代码导入dbf文件。
但是我收到了一个错误:
'外部表格不是预期的格式'
if (ofdDBF.ShowDialog()==DialogResult.OK)
{
string connStr = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ofdDBF.FileName.Substring(0, ofdDBF.FileName.LastIndexOf("\\")) + ";Extended Properties=dBASE IV;";
OleDbConnection conn = new OleDbConnection(connStr);
conn.Open();
string cmd_string = "select * from " + ofdDBF.SafeFileName.Substring(0, ofdDBF.SafeFileName.IndexOf("."));
MessageBox.Show(cmd_string);
OleDbDataAdapter da = new OleDbDataAdapter(cmd_string, conn);
DataSet ds = new DataSet();
da.Fill(ds);
dgvImport.DataSource = ds.Tables[0];
}
任何帮助?
答案 0 :(得分:5)
同样的问题(在64位系统上),解决方案
下载:http://download.microsoft.com/download/b/f/b/bfbfa4b8-7f91-4649-8dab-9a6476360365/VFPOLEDBSetup.msi
string connString = @"Provider=vfpoledb;Data Source=C:\Directory;Collating Sequence=machine;";
using (OleDbConnection con = new OleDbConnection(connString))
{
con.Open();
OleDbCommand command = new OleDbCommand("Select * from Table.DBF", con);
OleDbDataReader reader = command.ExecuteReader();
...
}
答案 1 :(得分:0)
在处理dBase / FoxPro的数据源时,源通常是指数据库名称,或只是路径。
一旦打开,你就可以
从YourTable中选择*
(查询中不需要.dbf文件名后缀。它将通过查看路径或连接的数据库来解析自己。)