一个棘手的问题,解决不了,无法进行下一个环节,急求各位大虾帮帮忙,让小菜度过“难关”!我在web.config中如下写:
<appSettings/>
<connectionStrings>
<add name="MyConn" connectionString="Data Source=CHINA-129BD748C\SQLEXPRESS;Initial Catalog=PeopleManageSystem;Integrated Security=sspi"/>
</connectionStrings>
而在调用数据库中数据时,连接方法出现异常,具体如下:
con.Open();
     用户代码未处理InvalidOperationException
     ConnectionString属性尚未初始化与数据库存储过程连接的具体代码如下:
 public string[] Login(string loginid, string password)
    {
        string[] CheckLogin;
        SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.AppSettings["MyConn"]);
        SqlCommand cmd = new SqlCommand("sysEmpLogin", con);
        cmd.CommandType = CommandType.StoredProcedure;        SqlParameter parameterID = new SqlParameter("@loginid", SqlDbType.VarChar, 50);
        parameterID.Value = loginid;
        cmd.Parameters.Add(parameterID);        SqlParameter parameterPassword = new SqlParameter("@password", SqlDbType.VarChar, 50);
        parameterPassword.Value = password;
        cmd.Parameters.Add(parameterPassword);        SqlParameter parameterEmpID = new SqlParameter("@empid", SqlDbType.VarChar, 50);
        parameterEmpID.Direction =ParameterDirection.Output;
        cmd.Parameters.Add(parameterEmpID);        SqlParameter parameterReason = new SqlParameter("@reason", SqlDbType.VarChar, 50);
        parameterReason.Direction=ParameterDirection.Output;
        cmd.Parameters.Add(parameterReason);        con.Open();
        cmd.ExecuteNonQuery();
        con.Close();
   }
拜托各位,帮忙找找解决办法,先谢过

解决方案 »

  1.   

    因为你使用System.Configuration.ConfigurationManager.AppSettings取得字符串。
    因此config文件中要将MyConn放到appSettings中。<appSettings><add name="MyConn" connectionString="Data Source=CHINA-129BD748C\SQLEXPRESS;Initial Catalog=PeopleManageSystem;Integrated Security=sspi"/>
    </appSettings><connectionStrings>
    </connectionStrings>
      

  2.   

    using(SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["MyConn"].ToString()))
    {
    conn.Open();
    SqlCommand MyCommand = new SqlCommand("MYSQL", conn);
    MyCommand.CommandType = CommandType.StoredProcedure;
    MyCommand.Parameters.Add(new SqlParameter("@a", SqlDbType.Int));
    MyCommand.Parameters["@a"].Value = 20;
    MyCommand.Parameters.Add(new SqlParameter("@b", SqlDbType.Int));
    MyCommand.Parameters["@b"].Direction = ParameterDirection.Output;
    MyCommand.ExecuteNonQuery();
    Response.Write(MyCommand.Parameters["@b"].Value.ToString());
    }
      

  3.   

    <appSettings>
    <add name="MyConn" connectionString="Data Source=CHINA-129BD748C\SQLEXPRESS;Initial Catalog=PeopleManageSystem;Integrated Security=sspi"/>
    </appSettings>
      

  4.   

    ConfigurationManager.AppSettings["MyConn"]改成:ConfigurationManager.ConntionStrings["MyConn"]
      

  5.   

    ConfigurationManager.ConnectionStrings["MyConn"]刚才写错了,不好意思
      

  6.   

    连接字符串丢到appSettings中 就行了
      

  7.   

    add name="MyConn" connectionString=@"Data Source=CHINA-129BD748C\SQLEXPRESS;Initial Catalog=PeopleManageSystem;Integrated Security=sspi"/>
      

  8.   

    关键是看你的web.config文件是怎么写这个数据库连接字符串
    大概有两种形式
    <add key="" value /?
    <add name="" connectonstring="" /?
    这两方法访问方式不一样的
    第一种:System.Configuration.ConfigurationManager.AppSettings["MyConn"]
    第二种:ConfigurationManager.ConnectionStrings["MyConn"]
    你自己对应一下
      

  9.   

    参考了各位的解决方案,终于找到了错误,连接代码写成:
    string mycon=ConfigurationManager.ConnectionStrings["MyConn"].ConnectionString;
    SqlConnection con=new SqlConnection(mycon);
    问题就解决了,谢谢各位!