您所在的位置:Seago-Microsoft Windows>>Windows管理脚本>> web.config文件中的连接字符串如何取出

web.config文件中的连接字符串如何取出

作者:monface 来源:新浪爱问 日期:2008-04-24 

不好意思,我没怎么看书,都是看网上的视频教程学有asp.net,开始有的老师可能是图方便,直接把连接字符串写在数据操作类中如DB.cs!!
后来了解到:这样有不安全的因素!最好写在web.config文件中,并用以下方法打开连接:
protected void OpenCon()//打开连接
{
if (con.State == ConnectionState.Closed)
{
try
{
con.ConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["connectionStrings"].ConnectionString;
cmd.Connection = con;
con.Open();
}
catch (Exception ex)
{
throw new exception(ex.Message);
}
}
}

一开始用这种方法好像还好使,能打开数据库。后来
不管怎么弄 con.ConnectionString取到的都 为空!

大虾们帮我看看是怎么回事?我把一个简单的程序
放到网站上了,麻烦大虾帮我看看:
http://www.haodd123.com/q/new.rar
电脑问题网给出的最佳答案 例 web.config
<connectionStrings>
<add
name="NorthwindConnectionString"
connectionString="Data Source=serverName;Initial
Catalog=Northwind;Persist Security Info=True;User
ID=userName;Password=password"
providerName="System.Data.SqlClient"
/>
</connectionStrings>
读取
System.Configuration.Configuration rootWebConfig =
System.Web.Configuration.WebConfigurationManager.OpenWebConfiguration(null);
System.Configuration.ConnectionStringSettings connString;
if (0 < rootWebConfig.ConnectionStrings.ConnectionStrings.Count)
{
connString =
rootWebConfig.ConnectionStrings.ConnectionStrings["NorthwindConnectionString"];
if (null != connString)
Console.WriteLine("Northwind connection string = \"{0}\"",
connString.ConnectionString);
else
Console.WriteLine("No Northwind connection string");
}


其他回答   发生此现象的原因在于:
有这个判断if (con.State == ConnectionState.Closed)
而你又没有在最后使用con.Close()来关闭连接,所以第一次的时候没问题,接下来就运行不到if里面的代码。所以取不到配置字符串。