-2

这是我的代码:

 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();
4

2 回答 2

1
con = new SqlConnection(constr);

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

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

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

也使用using语句来处理你的SqlConnectionSqlCommand对象。

于 2014-05-09T07:13:27.800 回答
0

这是错误:

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

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

这样做:

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


con.Open();

或者:

string connstr =ConfigurationManager.ConnectionStrings["ContactConnectionString"].ConnectionString;

con = new SqlConnection(constr);

con.Open();

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

con.Close()

于 2014-05-09T07:12:28.467 回答