.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 "];
这种用法好像会提示说 过时了