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

有人在吗?帮忙解决一下用ado.net连接access出现的的问题
我连接的代码如下:
OleDbConnection     conn   =   new   OleDbConnection
( "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=c://Report.mdb ");

  string     strSql   =   "select   *   from   example;

  OleDbCommand   comm   =   new   OleDbCommand(strSql,   conn);

  conn.Open();

//-----------------------我调试到下面这一行时,出现了这个异常:IErrorInfo.GetDescription   因   E_FAIL(0x80004005)   而失败。
//--------------------
  OleDbDataReader   dr   =   comm.ExecuteReader();

  while   (dr.Read())
  {
        dr.GetValue(0).ToString();
  }

  dr.Close();

  conn.Close();
--------------------------------------
在网上搜索了一下,有的说是连接sql语句写错了,也有说是   权限有问题,我跟踪调试了很久都没解决,有用ado.net连接acces做过开发的吗?帮忙解决一下?????

------解决方案--------------------
1、string strSql = "select * from example ";??是这个问题吗?
2、将数据库改为可写
3、设置数据库访问的权限加个everyone
试试吧。

-----------------------------------------------
msn:bdbox@hotmail.com
请给我个与您交流的机会
------解决方案--------------------
给存放数据库的文件夹添加 Internet 来宾用户 并 赋予其修改权限
------解决方案--------------------
access 一般要设置权限


public static readonly string constr = System.Configuration.ConfigurationManager.AppSettings[ "AccessConnString "].ToString() + System.Web.HttpContext.Current.Server.MapPath(ConfigurationManager.AppSettings[ "dbPath "]) + "; ";
System.Data.OleDb.OleDbConnection cn = new System.Data.OleDb.OleDbConnection(constr);


config


<appSettings>
<add key= "AccessConnString " value= "provider=microsoft.jet.oledb.4.0;data source= " />
<add key= "dbPath " value= "~/admin/Access.mdb " />
</appSettings>
------解决方案--------------------
OleDbConnection conn = new OleDbConnection
( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " + Server.MapPath( "Report.mdb ") + "; ";

Report.mdb与程序放一个文件夹下
------解决方案--------------------
OleDbConnection conn = new OleDbConnection
( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c://Report.mdb ");

> > >


OleDbConnection conn = new OleDbConnection
( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\\Report.mdb ");