如何连接到DBF数据库
我尝试使用C#连接到DBF数据库(我尝试3种连接的)如何连接到DBF数据库
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:
ERROR [HY024] [Microsoft][ODBC dBase Driver] '(unknown)' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
ERROR [IM006] [Microsoft][ODBC Driver Manager] Driver's SQLSetConnectAttr failed
ERROR [HY024] [Microsoft][ODBC dBase Driver] '(unknown)' is not a valid path. Make sure that the path name is spelled correctly and that you are connected to the server on which the file resides.
或错误2:
ERROR [IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
what c一个是问题?
在此先感谢
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)
两件事情:
首先,请尝试以下连接字符串:
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文件的工作的“特权”。如果你仍然有问题留下评论,明天我会在工作时看一看 - 上面的内容大多数都是在我的头顶上,有一点点使用Google。
试试这个:
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");
得到此错误:错误[IM002] [微软] [ODBC驱动程序管理器]数据源找不到名称并且没有指定默认驱动程序 – Gali
如果您使用的是64位服务器,则需要使用“Provider = Microsoft.Jet.OLEDB.12.0”。我知道这是一个古老的线程,但只是有人偶然发现这个..... –
谢谢Crisim II Numenoreano –