我做了个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 accesscn= new OdbcConnection("Driver={Microsoft Access Driver (*.mdb)};DBQ=D:\\Program Files\\Microsoft Office\\Office10\\Samples\\Northwind.mdb;UID=;PWD=;"); //for SQL servercn= new OdbcConnection("Driver={SQL Server};Server=mySQLServer;UID=sa;PWD=myPassword;Database=Northwind;");//for Oraclecn= new OdbcConnection("Driver={Microsoft ODBC for Oracle};Server=myOracleServer;UID=demo;PWD=demo;");//for dsncn= new OdbcConnection("dsn=myDSN;UID=myUid;PWD=myPwd;");