在窗体中运行正常的代码,被我放到网站中就一直出现ConnectionString 属性尚未初始化的问题。也根据网上的解决方法尝试过,没成功。实在没办法,只好老题新问了。
经测试,是连接字符串ConnString传值出了问题。数据库操作类CSql中:
public static string ConnString = ConfigurationSettings.AppSettings["strConn"];web.config中:
<appSettings>
    <add key="strConn" value="data source=SEVEN; Initial Catalog=BBS_DB;user id = sa; password =111111" />
  </appSettings>
  <connectionStrings/>测试数据库连接的地方:
// 创建连接对象
SqlConnection SqlConn = new SqlConnection(CSql.ConnString);
// 生成查询命令
string Sql = "Select UserName,UserPassword From [user] where UserName='" + this.TB_User.Text.Trim() + "'";
// 打开连接对象
SqlConn.Open();
CSql类中的ConnString是用static定义的,这样在引用这个变量时就不用实例化了吧?
可为什么一到SqlConn.Open()就出错呢?我想应该是配置文件中出了问题。也查阅了很多帖子,发现这样的一个回复:
××××××××××××××××××××××××××
web.config中配置如下:   
    
  <connectionStrings>   
  <add   name="managermentConnectionString"   connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=F:\website\App_Data\managerment.mdb"   
  providerName="System.Data.OleDb"   />   
  </connectionStrings>   
    
  改为:   
  <appSettings>   
    <add   key="managermentConnectionString"   value="Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=F:\website\App_Data\managerment.mdb"   
  providerName="System.Data.OleDb"   />   
  </appSettings>   
    
  如果是asp.net2.0   的话   :con.ConnectionString   =   System.Configuration.ConfigurationSettings.AppSettings["managermentConnectionString"];   
  改为con.ConnectionString   =   System.Configuration.ConfigurationSettings.ConnectionStrings["managermentConnectionString"];
×××××××××××××××××××××××另,我的.NET是2005版本,新建网站目录中有专门存放类文件的App_Code文件夹,会不会是用于这个原因导致值传递出错呢?

解决方案 »

  1.   

    你的项目是.NET 2.0 的吧貌似 ConfigurationSettings.AppSettings 只支持对.NET 1.0 1.1对配置文件的读取你用ConfigurationManager.AppSettings 试试
      

  2.   

    正解,你可以试试。
    ConfigurationSettings.AppSettings["strConn"].ToString();web.config中: 
    <appSettings> 
        <add key="strConn" value="data source=SEVEN; Initial Catalog=BBS_DB;user id = sa; password =111111" /> 
      </appSettings> 
      <connectionStrings/> 
      

  3.   

    应该是ConfigurationManager.AppSettings["strConn"].ToString(); 
      

  4.   

     ConfigurationManager.ConnectionStrings["RyMedicalConnectionString"].ConnectionString;
      

  5.   

    也遇到楼主类似情况,错误提示差不多...
    但最后发现,是数据库连接出的问题....
    我的数据配置是这样的:
    sqlconnection thisconnection=new sqlconnection(@"server=localhost\sqlexpress;Integrated=True;"+"Database=BMS");
    原来是缺少@和sqlexpress造成的,希望对楼主有帮助....
      

  6.   

    <add  name="managermentConnectionString"  connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data  Source=F:\website\App_Data\managerment.mdb"  
      providerName="System.Data.OleDb"  /> 
    肯定是这的问题,你可以看看不用配置文件连接数据库是否成功,等成功了再把连接字符串复制过来
      

  7.   

    一觉醒来,看到大家的帮忙,非常感谢!
    大多的意见是,将ConfigurationSettings.AppSettings改成ConfigurationManager.AppSettings如果这是正解,那我再问下各位。
    我在一个form中采用的数据库连接方式,也是前者,为什么没报错呢?
    窗体应用程序能成功,移到网站上,就不行了额。。
    请求大家帮忙~~谢谢
      

  8.   

    刚刚按照大家的方法,去尝试了一下。请大家看看结果~
    根据1楼和2楼大哥的办法,我将SQL操作类中的
    public static string ConnString = ConfigurationSettings.AppSettings["strConn"]; 
    改成了
    public static string ConnString = ConfigurationManager.AppSettings["strConn"];编译执行后,问题不变,源错误也仍旧是sqlconn.open().根据3楼和7楼大哥的办法,在最后添加一个tostring(),编译执行,出错,未将对象引用设置到对象的实例。源错误:行 23:     /// </summary>
    行 24: 
    行 25:     public static string ConnString = ConfigurationManager.AppSettings["strConn"].ToString();
    行 26: 
    行 27:     /// <summary>
    大家帮我看一下~谢谢
      

  9.   

    非常抱歉地对大家说,问题找到了。
    是我太粗心了,不知道用.NET创建网站的时候是在运行之后自动建立web.config文件的。
    我自己去建立了一个配置文件,并命名为app.config
    最后发现,无论APP.CONFIG怎么修改,代码执行过程中,压根没理它。。
    实在是好水的帖子。。
    非常抱歉。结贴咯。
    感谢大家:
    ConfigurationManager.AppSettings["strConn"].ToString();
    ConfigurationManager.AppSettings["strConn"];
    ConfigurationSettings.AppSettings["strConn"];  //也能成功这3句,都能成功执行。看来,在1.0和2.0中,只要是用AppSettings就可以了吧。