asp.net中gridview删除一行数据的一种方法

这是我花了一天的时间才搞懂的,写下来纪念一下!

前台的代码:注意没有使用sqldatasource

 <asp:GridView ID="GridView1" runat="server" AllowPaging="True" PageSize="6"  OnRowDeleting="GridView1_deleting"
    AutoGenerateColumns="False" DataKeyNames="用户名"  Width="819px">
    <Columns>
        <asp:BoundField DataField="用户名" HeaderText="用户名" ReadOnly="True" 
            SortExpression="用户名" />
        <asp:BoundField DataField="密码" HeaderText="密码" SortExpression="密码" />
        <asp:BoundField DataField="性别" HeaderText="性别" SortExpression="性别" />
        <asp:BoundField DataField="出生时间" HeaderText="出生时间" SortExpression="出生时间" />
        <asp:BoundField DataField="联系方式" HeaderText="联系方式" SortExpression="联系方式" />
        <asp:BoundField DataField="邮箱" HeaderText="邮箱" SortExpression="邮箱" />
        <asp:BoundField DataField="密码保护问题" HeaderText="密码保护问题" 
            SortExpression="密码保护问题" />
        <asp:BoundField DataField="密码保护问题回答" HeaderText="密码保护问题回答" 
            SortExpression="密码保护问题回答" />
        <asp:BoundField DataField="注册时间" HeaderText="注册时间" SortExpression="注册时间" />
        <asp:TemplateField ShowHeader="true" HeaderText="删除用户">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1" runat="server" CausesValidation="False" CommandName="Delete"
                    Text="删除" OnClientClick='<%#  "if (!confirm(\"你确定要删除" + Eval("用户名").ToString() + "吗?\")) return false;"%>'></asp:LinkButton>
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
</asp:GridView>

 后台的代码:

 protected void Page_Load(object sender, EventArgs e)
    {
        if(!Page.IsPostBack)
        {
            bind();
        }
    }
    public void bind()
    {
        SqlConnection conn = new SqlConnection(CommonMethods.connstring);
        conn.Open();
        string cmd = "select * from userlogin";
        SqlDataAdapter da = new SqlDataAdapter(cmd, conn);
        DataSet ds = new DataSet();
        da.Fill(ds);
        GridView1.DataSource = ds;
        GridView1.DataBind();
        conn.Close();
    }

    protected void GridView1_deleting(object sender, GridViewDeleteEventArgs e)//注意各种事件的参数类型
    {
        SqlConnection conn = new SqlConnection(CommonMethods.connstring);
        conn.Open();
        string deleteuser = GridView1.DataKeys[e.RowIndex].Value.ToString();//获取主键
        string cmd = "delete from userlogin where 用户名='" + deleteuser+"'" ;//
        SqlCommand cmdt = new SqlCommand(cmd, conn);
        try
        {
            cmdt.ExecuteNonQuery();
            Response.Write("<script>alert('删除成功!')</script>");
        }
        catch
        {
            return;
        }
        bind();
        conn.Close();
    }

 

我写的时候发现编译器提示我row和rowindex没有这样的指令集,到最后才发现原来是我的事件参数类型写错了,我这才发现事件参数的类型非常的重要。这里提个醒,希望大家别犯想我一样的低级错误!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值