日期:2014-05-18  浏览次数:20523 次

急求解决:未发现数据源名称并且未指定默认驱动程序 !!!
我做了个web应用程序,其中用odbc连接access数据。直接运行源代码没有问题,但是在发布在本机之后访问access就会报错:未发现数据源名称并且未指定默认驱动程序 
我的连接字符串如下:Provider=MSDASQL;DSN=aaa;UID=;Pwd=
代码如下:
C# code

public DataTable QueryDataTable(string sql)
        {
            DataTable dt = new DataTable();
            using (
            OdbcConnection dbconn = new OdbcConnection(ConfigurationManager.ConnectionStrings["ODBCConnectionString"].ConnectionString))
            {
                OdbcDataAdapter DataAdapter = new OdbcDataAdapter(sql, dbconn);
                DataAdapter.Fill(dt);
            }
            return dt;
        }


另外,数据源我也已经设定了(不然运行源代码也不会成功了),在“数据源管理器”中的“用户DSN”页下添加的名为aaa的数据源
急死我了,请大家帮忙解决下吧

------解决方案--------------------
这个语句不正确
改为:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=数据库文件路径;UID=;Pwd=
------解决方案--------------------
直接ODBC连接
Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\mydatabase.mdb;Uid=Admin;Pwd=;

或改为oledb连接
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;

另得注意dbconn.open();//打开连接
------解决方案--------------------
使用OdbcDataAdapter 可以不用dbconn.open();//打开连接
连接access数据一定要是绝对路径
------解决方案--------------------
C# code

//连接串错了

//for access
cn= new OdbcConnection("Driver={Microsoft Access Driver (*.mdb)};
DBQ=D:\\Program Files\\Microsoft Office\\Office10\\Samples\\Northwind.mdb;UID=;PWD=;");
   
//for SQL server
cn= new OdbcConnection("Driver={SQL Server};Server=mySQLServer;UID=sa;
PWD=myPassword;Database=Northwind;");


//for Oracle
cn= new OdbcConnection("Driver={Microsoft ODBC for Oracle};Server=myOracleServer;
UID=demo;PWD=demo;");

//for dsn
cn= new OdbcConnection("dsn=myDSN;UID=myUid;PWD=myPwd;");