求助 “ConnectionString 属性尚未初始化”错误 ,因为困扰了我一晚上了请大家帮帮忙!

bingy108 2009-01-14 12:37:05


之前在本地做网页是用绝对路径做的连接字符串“data source=Q:\web\WebSite3\App_Data\shop.mdb”,但是因为想到网上去发布,所以想改为用相对路径的字符串,就采用了下面ConnectionString2的那种,结果调试的时候出现了“ConnectionString 属性尚未初始化”的错误,用“ConnectionString”连接反而一点事也没有,数据读取都很正常。下面的代码,我看了很久还是没看出来哪里出了问题,╯﹏╰ 请大家帮帮忙,指点一下小弟吧!!

web.config代码如下:(ConnectionStringConnectionString2指向的是同一个数据库)

<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();
}
}
}
...全文
247 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
bingy108 2009-01-14
  • 打赏
  • 举报
回复
上面的“”本来是想用来标红字的,想不到居然不能直接用...Orz

大家54那几个字符吧。
bingy108 2009-01-14
  • 打赏
  • 举报
回复
哈哈,成功了!!我把后面的providerName="System.Data.OleDb"删掉后就可以正常运行了!

谢谢3楼的兄弟,终于把问题搞定了!


改成:

<add key="ConnectionString"
value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\shop.mdb;Persist Security Info=True" />
bingy108 2009-01-14
  • 打赏
  • 举报
回复
试了下,还是不行,在web.config中“providerName”已经出现了波浪线,说是“未声明‘providerName’的属性”,运行的时候果然出错了,问题也是说:

“/”应用程序中的服务器错误。
--------------------------------------------------------------------------------

配置错误
说明: 在处理向该请求提供服务所需的配置文件时出错。请检查下面的特定错误详细信息并适当地修改配置文件。

分析器错误信息: 无法识别的属性“providerName”。请注意属性名称区分大小写。



==================================================================================

我只是想把“Q:\web\WebSite3\App_Data\shop.mdb”给换成“|DataDirectory|\shop.mdb”,

居然问题这么多...Orz
xray2005 2009-01-14
  • 打赏
  • 举报
回复
改为:

<appSettings>
<add key="ConnectionString2"
value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\shop.mdb;Persist Security Info=True" providerName="System.Data.OleDb" />
</appSettings>

protected static string strConn = ConfigurationManager.ConnectionStrings["ConnectionString2"];
xray2005 2009-01-14
  • 打赏
  • 举报
回复
改为:

<appSettings>
<add key="ConnectionString2"
value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\shop.mdb;Persist Security Info=True" providerName="System.Data.OleDb" />
</appSettings>

protected static string strConn = ConfigurationManager.ConnectionStrings["ConnectionString2"].ConnectionString;

62,266

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧