求助 “ConnectionString 属性尚未初始化”错误 ,因为困扰了我一晚上了请大家帮帮忙!
之前在本地做网页是用绝对路径做的连接字符串“data source=Q:\web\WebSite3\App_Data\shop.mdb”,但是因为想到网上去发布,所以想改为用相对路径的字符串,就采用了下面ConnectionString2的那种,结果调试的时候出现了“ConnectionString 属性尚未初始化”的错误,用“ConnectionString”连接反而一点事也没有,数据读取都很正常。下面的代码,我看了很久还是没看出来哪里出了问题,╯﹏╰ 请大家帮帮忙,指点一下小弟吧!!
web.config代码如下:(ConnectionString和ConnectionString2指向的是同一个数据库)
<appSettings>
<add key="ConnectionString"
value="Provider=Microsoft.jet.oledb.4.0;data source=Q:\web\WebSite3\App_Data\shop.mdb;" />
</appSettings>
<connectionStrings>
<add name="ConnectionString2" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\shop.mdb;Persist Security Info=True" providerName="System.Data.OleDb" />
</connectionStrings>
该页面cs 部分代码如下:
private void Page_Load(object sender, System.EventArgs e)
{
string sSQL = "Select top 6 ProductId,PName,PPicture,PPrice,PMemberPrice,PClick from Product where PStock>0 order by PClick desc,PName";
DataSet oDS = OleBase.ExecuteSql4Ds(sSQL);
DataList1.DataSource = oDS.Tables[0].DefaultView;
DataList1.DataBind();
}
-----------------【这是类的代码】---------------------
public class OleBase
{
#region "Fields of OleBase calss"
/// <summary>
/// connecting to Database
/// </summary>
protected static string strConn = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
#endregion
#region "Functions of OleBase class"
public OleBase()
{
//
// TODO: Add constructor logic here
//
}
/// <summary>
/// executing SQL commands
/// </summary>
/// <param name="strSQL">string</param>
/// <returns>return int</returns>
public static int ExecuteSql(string strSQL)
{
OleDbConnection myCn = new OleDbConnection(strConn);
OleDbCommand myCmd = new OleDbCommand(strSQL,myCn);
try
{
myCn.Open();
myCmd.ExecuteNonQuery();
return 0;
}
catch(OleDbException e)
{
throw new Exception(e.Message/* + " at databse :" + strConn*/);
}
finally
{
myCmd.Dispose();
myCn.Close();
}
}
}