如何连接到dbf数据库

时间:2011-08-29 08:17:40

标签: c# database

我尝试使用C#连接到DBF数据库(我尝试3种类型的连接)

string connectionString = @"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:\employees.dbf;";
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\employees.dbf;Extended Properties=dBASE IV;";
string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\employees.dbf;Extended Properties=dBASE IV;User ID=Admin;Password=;";

using (OdbcConnection connection = new OdbcConnection(connectionString))
{
    connection.Open();
}

我收到了错误

ERROR1:

  

错误[HY024] [微软] [ODBC dBase驱动程序]'(未知)'不是   有效路径。确保路径名称拼写正确并且   您已连接到文件所在的服务器   错误[IM006] [Microsoft] [ODBC驱动程序管理器]驱动程序   SQLSetConnectAttr失败
  错误[HY024] [微软] [ODBC dBase驱动程序]'(未知)'不是   有效路径。确保路径名称拼写正确并且   您已连接到文件所在的服务器。

或错误2:

  

错误[IM002] [Microsoft] [ODBC驱动程序管理器]数据源名称   找不到,也没有指定默认驱动程序

可能是什么问题?

提前致谢

3 个答案:

答案 0 :(得分:7)

Dim Conn As New OLEDBConnection  
Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\folder;Extended Properties=dBASE IV;User ID=Admin;Password=;"

要从数据库表中进行选择,您必须执行以下操作(例如):

"SELECT * FROM tblCustomers.DBF"

(注意表名后的.DBF)

答案 1 :(得分:4)

两件事:

首先,尝试以下连接字符串:

string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\;Extended Properties=dBASE IV;";

请注意,您没有在连接字符串中指定文件名(这将是SELECT或其他语句的一部分),只是文件所在的路径。

打开连接后,即使用文件名。例如:

OleDbCommand cmd = new OleDbCommand("SELECT * FROM Employees");

请注意,您不添加“.dbf”扩展名(假设 - 事实上,该文件必须具有.dbf扩展名,否则将无法识别和读取,至少在我的经验中)。

修改

我有使用DBF文件的“特权”(一次数百到数千)比我想要的更多。如果你仍然有问题发表评论,明天我会在工作时看一看 - 上面的内容大部分都是我的头顶部分,只是用谷歌搜索。

答案 2 :(得分:-1)

试试这个:

System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection ("Driver={Microsoft Visual FoxPro Driver};
SourceType = DBF;
SourceDB = " + System.IO.Path.GetFullPath(strFileName).Replace(System.IO.Path.GetFileName(strFileName), "") + ";Exclusive=No");