asp.Netでgridviewが1行のデータを削除する方法


これは私が一日かけてやっと分かったので、記念に書いてください.
フロントのコード: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にこのような命令セットがないことをヒントにして、最後に私のイベントパラメータタイプが間違っていることに気づいて、私はやっとイベントパラメータのタイプが非常に重要であることを発見しました.ここで目を覚まして、みんなが私のような低級な間違いを犯さないことを望んでいます!