我尝试使用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驱动程序管理器]数据源名称 找不到,也没有指定默认驱动程序
可能是什么问题?
提前致谢
答案 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");