为什么老出现这样错误:"连接已经打开(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(); }
解决方案 »
- asp.net中两表嵌套循环显示问题?
- 大家帮我看看这个堆栈错误怎么看
- 正则匹配非public的链接,怎么匹配?
- 200分 寻求解决方案,上万节点的树 效率问题
- ▲▲▲请问各位,我要写一个用户自定义的类似DropDownList的下拉框控件,在Web(C#)中使用.怎么触发选择改变事件,然后提交一次页面呀?▲▲▲
- vs 2005属性面板
- 如何去掉namespace
- 如何判断一个汉字是简体字?
- (fzymr)请问各位高手,怎样通过olddb连接数据库
- 急救!如何用<INPUT type="file">进行文件过滤以及它的文件过滤格式为?
- 紧急求助!!
- 新手提问:用C#作asp.net 怎么实现点一下按钮 调出另一个页面?
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()移动到这句的位置。
这样应该没错误了