【问题标题】:The ConnectionString property has not been initialized. Error in C# web applicationConnectionString 属性尚未初始化。 C# Web 应用程序中的错误
【发布时间】:2014-05-09 07:08:39
【问题描述】:

这是我的代码:

 using System; 
 using System.Web.UI.WebControls; 
 using System.Data.SqlClient; 
 using System.Data; 
 using System.Configuration;       

 namespace EmployeeSys
 {
     public partial class WebForm1 : System.Web.UI.Page
     {
        string query, constr;
        SqlConnection con;
        SqlCommand com; 

     public void connection()
     {
          SqlConnection connstr = new SqlConnection(ConfigurationManager.ConnectionStrings["ContactConnectionString"].ConnectionString);
          //constr = ConfigurationManager.ConnectionStrings["ems"].ToString();
          con = new SqlConnection(constr);
          con.Open();
     }
     protected void Page_Load(object sender, EventArgs e)
     {
         if (IsPostBack == false)
         { 
             gedata();> 
         }
         Label1.Visible = false;
     }
     protected void empsave(object sender, EventArgs e)
     { 
         connection();
         HiddenField1.Value = "Insert";
         query = "EmpEntry";
         com = new SqlCommand(query, con);
         com.CommandType = CommandType.StoredProcedure;
         com.Parameters.AddWithValue("@Action",HiddenField1.Value).ToString();
         com.Parameters.AddWithValue("@FName", TextBox1.Text).ToString();
         com.Parameters.AddWithValue("@MName", TextBox2.Text).ToString();
         com.Parameters.AddWithValue("@LName", TextBox3.Text).ToString();
         int result=  com.ExecuteNonQuery();
         con.Close();
         if (result >= 1)
        {
             Label1.Text = "Records Are Added";             
        }          
     }
     public void gedata()
     {
         connection();
         HiddenField1.Value = "view";
         query = "EmpEntry";
         com = new SqlCommand(query, con);
         com.CommandType = CommandType.StoredProcedure;
         com.Parameters.AddWithValue("@Action", HiddenField1.Value).ToString();
         SqlDataAdapter da = new SqlDataAdapter(com);
         DataSet ds = new DataSet();
         da.Fill(ds);
         GridView1.DataSource = ds;
         GridView1.DataBind();
         con.Close();         
     }
     protected void edit(object sender, GridViewEditEventArgs e)
     {
         GridView1.EditIndex= e.NewEditIndex;
         gedata();

     }
     protected void canceledit(object sender, GridViewCancelEditEventArgs e)
     { 
         GridView1.EditIndex = -1;
         gedata();
     }
     protected void update(object sender, GridViewUpdateEventArgs e)
     {
         connection();
         int id=int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());
         HiddenField1.Value = "update";
         query = "EmpEntry";
         com = new SqlCommand(query, con);
         com.CommandType = CommandType.StoredProcedure;
         com.Parameters.AddWithValue("@Action", HiddenField1.Value).ToString();
         com.Parameters.AddWithValue("@FName", ((TextBox)GridView1.Rows[e.RowIndex].Cells[3].Controls[0]).Text.ToString());
         com.Parameters.AddWithValue("@MName", ((TextBox)GridView1.Rows[e.RowIndex].Cells[4].Controls[0]).Text.ToString());
         com.Parameters.AddWithValue("@LName", ((TextBox)GridView1.Rows[e.RowIndex].Cells[5].Controls[0]).Text.ToString());
         com.Parameters.AddWithValue("@id", SqlDbType.Int).Value = id;
         com.ExecuteNonQuery();
         con.Close();
         GridView1.EditIndex = -1;
         gedata();         
     }

     protected void delete(object sender, GridViewDeleteEventArgs e)
     {
         connection();
         int id = int.Parse(GridView1.DataKeys[e.RowIndex].Value.ToString());
         HiddenField1.Value = "Delete";
         query = "EmpEntry";
         com = new SqlCommand(query, con);
         com.CommandType = CommandType.StoredProcedure;
         com.Parameters.AddWithValue("@Action", HiddenField1.Value).ToString();
         com.Parameters.AddWithValue("id", SqlDbType.Int).Value = id;
         com.ExecuteNonQuery();
         con.Close();
         gedata();                       
     }
 } 
}

我已经在web.config中添加了连接字符串。

错误:

ConnectionString 属性尚未初始化。

在这一行:

con.open();

【问题讨论】:

  • 你应该试着提出一个问题。

标签: c# c#-4.0 csharpcodeprovider


【解决方案1】:
con = new SqlConnection(constr);

通过这一行,您尝试将SqlConnection 对象作为参数传递给您的SqlConnection 构造函数。错了。

将您的连接字符串作为参数传递给您的SqlConnection。喜欢;

string connstr = ConfigurationManager.ConnectionStrings["ContactConnectionString"].ConnectionString;
SqlConnection con = new SqlConnection(constr);

也可以使用using statement 来处理您的SqlConnectionSqlCommand 对象。

【讨论】:

    【解决方案2】:

    这里是错误的:

    SqlConnection connstr = new SqlConnection(ConfigurationManager.ConnectionStrings["ContactConnectionString"].ConnectionString);
          //  constr = ConfigurationManager.ConnectionStrings["ems"].ToString();
            con = new SqlConnection(constr);
            con.Open();
    

    您需要将 ConnectionString 作为字符串传递给SqlConnection 对象或将其分配给string 但您正在初始化SqlConnection 对象

    这样做:

    con= new SqlConnection(ConfigurationManager.ConnectionStrings["ContactConnectionString"].ConnectionString);
    
    
    con.Open();
    

    或:

    string connstr =ConfigurationManager.ConnectionStrings["ContactConnectionString"].ConnectionString;
    
    con = new SqlConnection(constr);
    
    con.Open();
    

    记住不要忘记在数据库操作后关闭连接使用:

    con.Close()

    【讨论】:

      猜你喜欢
      • 2013-10-21
      • 1970-01-01
      • 2016-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多