首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

.net连接ACCESS数据库找不到路径的有关问题

2011-12-10 
.net连接ACCESS数据库找不到路径的问题用的是VS2005web.config文件:appSettingsaddkey ConnStr valu

.net连接ACCESS数据库找不到路径的问题
用的是VS2005
web.config文件:
<appSettings>
      <add   key= "ConnStr "   value= "Provider=Microsoft.Jet.OLEDB.4.0;   Data   Source=/App_Data/qwins.mdb "/>
</appSettings>

连接数据库的类文件DConn.cs:

using   System;
using   System.Data;
using   System.Configuration;
using   System.Web;
using   System.Web.Security;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.WebControls.WebParts;
using   System.Web.UI.HtmlControls;
using   System.Data.OleDb;


///   <summary>
///   conn   的摘要说明
///   </summary>
namespace   AccConn
{
public   class   DConn
{      
        protected   string   Conn=ConfigurationSettings.AppSettings[ "ConnStr "];//连接数据库
        protected   string   AccSql;
        OleDbConnection   ConnString;
public   DConn(string   AccSql)
{
//
//   TODO:   在此处添加构造函数逻辑
//
                ConnString=new   OleDbConnection(Conn);//创建一个实例
                this.AccSql=AccSql;
}
        public   DataSet   DsSql()
        {
                OleDbDataAdapter   da   =   new   OleDbDataAdapter(AccSql,   ConnString);
                DataSet   ds   =   new   DataSet();
                da.Fill(ds);
                return   ds;
        }
}
}

显示页面的类文件default.aspx.cs:

using   System;
using   System.Data;
using   System.Configuration;
//using   System.ComponentModel;
using   System.Web;
using   System.Web.Security;
using   System.Web.UI;
using   System.Web.UI.WebControls;
using   System.Web.UI.WebControls.WebParts;
using   System.Web.UI.HtmlControls;
using   System.Data.OleDb;
using   AccConn;//命名空间
using   System.Collections;

        public   partial   class   Default   :   System.Web.UI.Page
        {
                protected   void   Page_Load(object   sender,   EventArgs   e)
                {
                        if   (!IsPostBack)
                        {
                          DConn   Dc   =   new   DConn( "Select   *   from   news   order   by   id   asc ");
                          DataSet   ds   =   Dc.DsSql();
                          MyList.DataSource   =   ds.Tables[ "news "].DefaultView;
                          MyList.DataBind();


                        }
                }
        }


一运行就提示出错:
'C:\App_Data\qwins.mdb '不是一个有效的路径。   确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。
异常详细信息:   System.Data.OleDb.OleDbException:   'C:\App_Data\qwins.mdb '不是一个有效的路径。   确定路径名称拼写是否正确,以及是否连接到文件存放的服务器。

行   39:   OleDbDataAdapter   da   =   new   OleDbDataAdapter(AccSql,   ConnString);
行   40:   DataSet   ds   =   new   DataSet();
行   41:   da.Fill(ds);   //并提示这一行有问题
行   42:   return   ds;
行   43:   }
 
怎么解决这个问题?

[解决办法]
你可以变通一个

<add key= "ConnStr " value= "App_Data\qwins.mdb "/>

string path=System.AppDomain.CurrentDomain.BasePath(相似的一个属性,我不记得了)+ ConfigurationSettings.AppSettings[ "ConnStr "];


path== "Provider=Microsoft.Jet.OLEDB.4.0; Data Source= "+ path;

OK ,接分
[解决办法]
ASP.NET 2.0吧。
我记得ASP.NET好象对APP_Data目录作了特殊处理,请使用
Data Source=|DataDirectory|\qwins.mdb
来访问数据库。
[解决办法]
asp.net 2.0 中ConfigurationSettings.AppSettings[ "ConnStr "];
这种用法好像会提示说 过时了

热点排行