gridview 自带的删除功能
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;public partial class _Default : System.Web.UI.Page 
{
    SqlConnection sqlcon;
    SqlCommand sqlcom;
    string strCon = "Data Source=(local);Database=db_04;Uid=sa;Pwd=";
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bind();
        }
    }
       protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {
        string sqlstr = "delete from tb_Member where id='" + GridView1.DataKeys[e.RowIndex].Value.ToString() + "'";
        sqlcon = new SqlConnection(strCon);
        sqlcom = new SqlCommand(sqlstr,sqlcon);
        sqlcon.Open();
        sqlcom.ExecuteNonQuery();
        sqlcon.Close();
        bind();
    }
        public void bind()
    {
        string sqlstr = "select * from tb_Member";
        sqlcon = new SqlConnection(strCon);
        SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
        DataSet myds = new DataSet();
        sqlcon.Open();
        myda.Fill(myds, "tb_Member");
        GridView1.DataSource = myds;
        GridView1.DataKeyNames = new string[] { "id" };
        GridView1.DataBind();
        sqlcon.Close();
    }
}

解决方案 »

  1.   

    提醒一下:将datagridview的selectionmode属性改为FullRowSelect
    如果你的datagridview中没有datakeys,那么就将查询条件改一下
      

  2.   

    你们错了啊~~我要的是删除DGV上面的一行  其实是把DGV上面其中一行数据清空  
    我做的是超市系统  就是说 人家买了 10种不同的商品,但是后来 只要8样
    那么我就要删除 2样  删除不是真正意义上的删除~库存的懂没少~只是显示的少了!
      

  3.   

    使用DGV的RowDeleting事件  CommandName="delete"
    DataKeys一定有值 不然就如楼上所有查询条件改一下
      

  4.   

    你可以作一个删除的按钮啊,把它和一个隐藏的按钮关联,然后传这条的datakeys过去,要借助JavaScript,在隐藏按钮事件中删了这条数据,然后会刷新页面看不到这条数据了。