我在App_code中建了一个新类,其中有这么一段代码
public SqlConnection Connection;
public clsDB()
{
Connection =new SqlConnection(ConfigurationManager.AppSettings["patentConnectionString"]);
Connection.Open();
}
调试时发现ConfigurationManager.AppSettings["patentConnectionString"]是空的(null),而
在Web.Config中写了这样一行代码:
<appSettings/>
<connectionStrings>
<add name="patentConnectionString" connectionString="Data Source=OWNER-19392186D;Initial Catalog=patent;Integrated Security=SSPI" providerName="System.Data.SqlClient"/>
</connectionStrings>
请问:
为什么ConfigurationManager.AppSettings["patentConnectionString"]是空的(null)?
是Web.Config无法访问吗?还是别的
public SqlConnection Connection;
public clsDB()
{
Connection =new SqlConnection(ConfigurationManager.AppSettings["patentConnectionString"]);
Connection.Open();
}
调试时发现ConfigurationManager.AppSettings["patentConnectionString"]是空的(null),而
在Web.Config中写了这样一行代码:
<appSettings/>
<connectionStrings>
<add name="patentConnectionString" connectionString="Data Source=OWNER-19392186D;Initial Catalog=patent;Integrated Security=SSPI" providerName="System.Data.SqlClient"/>
</connectionStrings>
请问:
为什么ConfigurationManager.AppSettings["patentConnectionString"]是空的(null)?
是Web.Config无法访问吗?还是别的
public SqlConnection Connection;
public clsDB()
{
Connection = new SqlConnection(ConfigurationManager.AppSettings["patentConnectionString"]);
}
public void DtataOpen()
{
Connection.Open();
}
{
Connection =new SqlConnection(ConfigurationManager.ConnectionStrings["patentConnectionString"]);
Connection.Open();
} 这样就对了,因为你并没有把连接字符串放在<appSettings>标签里,
{
Connection =new SqlConnection(ConfigurationManager.ConnectionStrings["patentConnectionString"].ConnectionString);
Connection.Open();
} 这个才是对的,上面刚才写错了
我承认上面写法都对
但是帮不上LZ
我来解释一下
LZ如果还不明白
过来砸我脑袋首先
你用的是Connection =new SqlConnection(ConfigurationManager.AppSettings["patentConnectionString"]);
ConfigurationManager.AppSettings的含义就是 调用 web.config里面AppSettings中value的值,方括号里面是key的字符串,也就是patentConnectionString
如果你要用ConfigurationManager.AppSettings
在web.config里应该这么写
<AppSettings><add key="patentConnectionString" value="Data Source=OWNER-19392186D;Initial Catalog=patent;Integrated Security=SSPI" providerName="System.Data.SqlClient"/>
</AppSettings>那如果web.config中的代码不改,在方法里面应该怎么引用呢
应该用
Connection =new SqlConnection(ConfigurationManager.ConnectionStrings["patentConnectionString"].ConnectionString);
ConfigurationManager.ConnectionStrings的意思就是 调用 web.config里面connectionString的值,方括号里面要写name后面的字符串,也就是patentConnectionString,最后["patentConnectionString"].ConnectionString取得连接字符串<connectionStrings>
<add name="patentConnectionString" connectionString="Data Source=OWNER-19392186D;Initial Catalog=patent;Integrated Security=SSPI" providerName="System.Data.SqlClient"/>
</connectionStrings>
<connectionStrings>
<add name="patentConnectionString" connectionString="Data Source=OWNER-19392186D;Initial Catalog=patent;Integrated Security=SSPI" providerName="System.Data.SqlClient"/>
</connectionStrings> 看到<appSettings/> 这个没有,那一斜线就是关闭appSettings标签的意思
<connectionStrings>
<add name="patentConnectionString" connectionString="Data Source=OWNER-19392186D;Initial Catalog=patent;Integrated Security=SSPI" providerName="System.Data.SqlClient"/>
</connectionStrings>
LZ你并没有把连接字符串放在 <appSettings>标签里!~~