我在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无法访问吗?还是别的

解决方案 »

  1.   

    还有一点忘说了,代码改成下面这样就行了,为什么?
     public SqlConnection Connection;
        public clsDB()
        {
            Connection = new SqlConnection(ConfigurationManager.AppSettings["patentConnectionString"]);
        }
            public void DtataOpen()
        {
           Connection.Open();
        }   
      

  2.   

     public clsDB() 
        { 
          Connection =new SqlConnection(ConfigurationManager.ConnectionStrings["patentConnectionString"]); 
          Connection.Open(); 
        } 这样就对了,因为你并没有把连接字符串放在<appSettings>标签里,
      

  3.   

     public clsDB() 
        { 
          Connection =new SqlConnection(ConfigurationManager.ConnectionStrings["patentConnectionString"].ConnectionString); 
          Connection.Open(); 
        } 这个才是对的,上面刚才写错了
      

  4.   

    LZ 明明保存的是AppSettting  怎么去 ConnectionString 调用呢?
      

  5.   

    上面的都是心里明
    我承认上面写法都对
    但是帮不上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> 
      

  6.   

    <appSettings/> 
    <connectionStrings> 
        <add name="patentConnectionString" connectionString="Data Source=OWNER-19392186D;Initial Catalog=patent;Integrated Security=SSPI" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 看到<appSettings/> 这个没有,那一斜线就是关闭appSettings标签的意思
      

  7.   

    <appSettings/> 
    <connectionStrings> 
        <add name="patentConnectionString" connectionString="Data Source=OWNER-19392186D;Initial Catalog=patent;Integrated Security=SSPI" providerName="System.Data.SqlClient"/> 
    </connectionStrings> 
    LZ你并没有把连接字符串放在 <appSettings>标签里!~~
      

  8.   

     <add name="patentConnectionString" connectionString="Data Source=OWNER-19392186D;Initial Catalog=patent;Integrated Security=SSPI" providerName="System.Data.SqlClient"/> 放在appseting里面就好了
      

  9.   

    <appSettings>... 
     
      

  10.   

    对啊,你是把连接字符串放到了<connectionStrings></connectionStrings>中了,如果放在这里面了访问的时候应该是ConfigurationManager.connectionStrings["你定义的连接字符串的名字"]这样就可以了