为什么老出现这样错误:"连接已经打开(state=Open)。"
代码如下:
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string strconn=ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn=new SqlConnection(strconn);
cn.Open();
string DeleteCmd = "delete from see where name=@sname";
SqlCommand cm = new SqlCommand(DeleteCmd,cn);
cm.Parameters.Add(new SqlParameter("@sname",SqlDbType.VarChar,50));
cm.Parameters["@sname"].Value = DataGrid1.DataKeys[e.Item.ItemIndex];
cm.Connection.Open();
try
{
cm.ExecuteNonQuery();
Message.Text = "删除成功";
}
catch (SqlException)
{
Message.Text = "无法删除";
}
cm.Connection.Close();
BindGrid(); }
代码如下:
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
string strconn=ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn=new SqlConnection(strconn);
cn.Open();
string DeleteCmd = "delete from see where name=@sname";
SqlCommand cm = new SqlCommand(DeleteCmd,cn);
cm.Parameters.Add(new SqlParameter("@sname",SqlDbType.VarChar,50));
cm.Parameters["@sname"].Value = DataGrid1.DataKeys[e.Item.ItemIndex];
cm.Connection.Open();
try
{
cm.ExecuteNonQuery();
Message.Text = "删除成功";
}
catch (SqlException)
{
Message.Text = "无法删除";
}
cm.Connection.Close();
BindGrid(); }
string strconn=ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn=new SqlConnection(strconn);
cn.Open();
全删除了,还出现这个问题
或者cn.Open();
删除掉其中一个就可以了
{
cm.ExecuteNonQuery();
Message.Text = "删除成功";
}
catch (SqlException)
{
Message.Text = "无法删除";
}
finally
{
cm.Connection.Close();//最好把关闭放在这里面
}
BindGrid();
{
string strconn=ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn=new SqlConnection(strconn);
cn.Open();
string DeleteCmd = "delete from see where name=@sname";
SqlCommand cm = new SqlCommand(DeleteCmd,cn);
cm.Parameters.Add(new SqlParameter("@sname",SqlDbType.VarChar,50));
cm.Parameters["@sname"].Value = DataGrid1.DataKeys[e.Item.ItemIndex];
try
{
cm.ExecuteNonQuery();
Message.Text = "删除成功";
}
catch (SqlException)
{
Message.Text = "无法删除";
}
finally
{
cn.Close();
}
BindGrid(); }这样试,应该没错的
if(cn.State == ConnectionState.Close)
cn.Open
end if
把 cm.Connection.Open() 删掉
cn.Close();再把cn.Open();删掉
cm.Connection.Open();删掉后把上面的cn。open()移动到这句的位置。
这样应该没错误了