我当前正在创建一个到Web托管的远程服务器的ODBC连接。 访问文件位于ftp主目录。
在此代码中运行时,在m_connection.Open();
var m_result = new DataTable();
try
{
using (OdbcConnection m_connection = new OdbcConnection(connectionDBString))
{
string sql = "SELECT * FROM product";
m_connection.Open();
OdbcDataAdapter dataadapter = new OdbcDataAdapter(sql, m_connection);
dataadapter.Fill(m_result);
m_connection.Dispose();
m_connection.Close();
}
}
catch (Exception e)
{
}
return m_result;
以下异常失败
错误[IM002] [Microsoft] [ODBC驱动程序管理器]数据源名称不是 找到并且没有指定默认驱动程序
无论如何都要声明ODBC连接的dataSource? 在cPanel中,我只按如下方式设置DSN和Path:
DSN:wealthhonesthk-website
路径:e:\ virtualhost \ domains \ wealthhonesthk \ home \ website.mdb
以下是我对web.config
的一部分 <connectionStrings>
<add
name="ODBCDataConnectionString"
connectionString="DSN=wealthhonesthk-website;Driver={Microsoft Access Driver (*.mdb)};FILEDSN=ftp:/210.245.166.72/home/website.mdb;Dbq=ftp:/210.245.166.72/home/website.mdb;Uid=;Pwd=; curly=false;"
providerName="System.Data.Odbc"
/>
</connectionStrings>
答案 0 :(得分:1)
当您未在配置文件中定义连接字符串时(例如在旧的VB6天中),您倾向于使用DSN。由于您使用的是配置文件,因此您确实不需要DSN。为什么不使用像:
这样的连接字符串 Driver={Microsoft Access Driver (*.mdb)};Dbq=ftp://210.245.166.72/home/website.mdb;Uid=Admin;Pwd=;
?
此外,将MDB文件映射到FTP位置可能会出现问题;为什么不将网络驱动器映射到该位置?这样,您的连接字符串可能如下所示:
Driver={Microsoft Access Driver (*.mdb)};Dbq=X:\myNetworkLocation\website.mdb;Uid=Admin;Pwd=;
最后,为什么要为连接字符串定义FILEDSN和Dbq参数?
简而言之,我建议删除连接字符串的DSN部分,并为MDB文件使用非ftp位置。
答案 1 :(得分:0)
以下是连接字符串所需的所有信息:
答案 2 :(得分:0)