到Access的OLEDB连接不工作; “数据源名称未找到,没有指定默认驱动程序”
问题描述:
我试图从ASP.Net应用程序中从Access数据库中检索数据。 当我访问ExecuteScalar的一个表时它工作。 但在下面的代码中,我得到这个错误; 数据源名称找不到和未指定默认驱动程序到Access的OLEDB连接不工作; “数据源名称未找到,没有指定默认驱动程序”
private static string GetConnectionString()
{
string importFolder = HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings["DataPath"].ToString());
string fileName = ConfigurationManager.AppSettings["DataFile"].ToString();
return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + importFolder + fileName;
}
public DataTable getaddresses(string doorno, string Addsearch)
{
System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection(GetConnectionString());
DataTable dt = new DataTable();
string query = "SELECT * FROM Address_tble";
System.Data.Odbc.OdbcDataAdapter da = new System.Data.Odbc.OdbcDataAdapter(query, conn);
da.Fill(dt);
da.Dispose();
return dt;
}
答
不它必须是一个OleDbConnection不是ODBC?您正在使用Microsoft.Jet.OLEDB.4.0
答
更改您的代码以按照建议使用OleDbConnection和OleDbDataAdapter。
尝试对路径和文件名进行硬编码或输出GetConnectionString()函数返回的内容。我怀疑格式不正确。先让它工作,然后如果是这个问题,请调试GetConnectionString()函数。
或者如果它是一个ODBC连接,请更改连接字符串。 – JeffO 2010-07-21 15:39:55