我的 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

解决方案 »

  1.   

    Response.Write("<script>alert('删除成功!')</script>");
    错在这里,要去注册一个页面脚本。
    不要用Response.Write发脚本给页面。简单理解
    到Response.Write时方法结束,
    this.gvList.DataBind();不执行
      

  2.   

    从你代码看不出什么问题。你应该跟踪你的这个 DataBind 方法内部,看看数据是否正确,例如它是不是丢失了查询条件?
      

  3.   

    这是asp.net,跟winform的命令处理过程不一样。
      

  4.   

     多谢提点,终于解决了。调用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()方法。
      

  5.   

        Response.Write("<script>alert('删除成功!')</script>");
            this.gvList.DataBind();
    位置换下
      

  6.   

    执行 this.gvList.DataBind() 只是绑定数据,前提是你已经用正确的dst给它赋值了。(这个dst恰好是你用正确的查询条件得到的查询结果)。从你在问题中贴出的代码,无法看出你给 .DataSource 传送的是什么值。而从你后边的代码来看,不管之前你传送的是什么值,你都重新查询并且重新给 DatsSource 赋值了。或许你只是忘记了给这个属性赋值。
      

  7.   

    执行 this.gvList.DataBind() 只是绑定数据,前提是你已经用正确的dst给它赋值了。(这个dst恰好是你用正确的查询条件得到的查询结果)。从你在问题中贴出的代码,无法看出你给 .DataSource 传送的是什么值。而从你后边的代码来看,不管之前你传送的是什么值,你都重新查询并且重新给 DatsSource 赋值了。或许你只是忘记了给这个属性赋值。
     不好意思还想请教一个问题,如果要根据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+"')";