到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

+0

或者如果它是一个ODBC连接,请更改连接字符串。 – JeffO 2010-07-21 15:39:55

更改您的代码以按照建议使用OleDbConnection和OleDbDataAdapter。

尝试对路径和文件名进行硬编码或输出GetConnectionString()函数返回的内容。我怀疑格式不正确。先让它工作,然后如果是这个问题,请调试GetConnectionString()函数。