我的 RowDeleting事代码如下
string strDelet = @"delete from [GROUPUSER] WHERE USERID in( select USERID from [USER] where LOGONID='"+gvList.DataKeys[e.RowIndex].Value.ToString()+"')";
SqlCommand sqlcom = new SqlCommand(strDelet,Conn());
sqlcom.ExecuteNonQuery();
Conn().Close();
Response.Write("<script>alert('删除成功!')</script>");
this.gvList.DataBind();GridViewselectString deleting
string strDelet = @"delete from [GROUPUSER] WHERE USERID in( select USERID from [USER] where LOGONID='"+gvList.DataKeys[e.RowIndex].Value.ToString()+"')";
SqlCommand sqlcom = new SqlCommand(strDelet,Conn());
sqlcom.ExecuteNonQuery();
Conn().Close();
Response.Write("<script>alert('删除成功!')</script>");
this.gvList.DataBind();GridViewselectString deleting
错在这里,要去注册一个页面脚本。
不要用Response.Write发脚本给页面。简单理解
到Response.Write时方法结束,
this.gvList.DataBind();不执行
private void BindData()
{
//将数据部署到GridView中
string sqlStr = @"select LOGONID,USERNAME,GROUPNAME from [USER] left join [GROUPUSER]
on [USER].USERID=[GROUPUSER].USERID right join [GROUP] on [GROUP].GROUPID=[GROUPUSER].GROUPID where GROUPNAME='" + ddlSearch.SelectedValue + "'";
SqlDataAdapter dad = new SqlDataAdapter(sqlStr, Conn());
DataSet dst = new DataSet();
dad.Fill(dst);
gvList.DataSource = dst;
gvList.DataBind(); }
,不过还是不明白,到底什么时候才需要调用这个方法,什么情况下可以直接用.DataBind()方法。
this.gvList.DataBind();
位置换下
不好意思还想请教一个问题,如果要根据GridView中两列的字段组合的信息才能删除该记录,要怎么做?,比如
GridView中显示的是 账号 部门 用户名 ,现在要编辑RowDeleting 事件 ,要获得部门和账号才能删除一条记录,这是我写的,不过不正确,删除不了信息
@"DELETE from [GROUPUSER] where USERID in(select USERID from [USER] where LOGONID='"+strID+"') and GROUPID in(select GROUPID from [GROUP] where [GROUP].GROUPNAME='"+strID+"')";