如何获取Grid View的单击按钮行的数据?

时间:2012-01-29 05:22:39

标签: c# asp.net database gridview

我正在建立一个网站,但是有一个问题。 我不知道如何访问按钮被单击的行中的网格数据。

.aspx文件:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataSourceID="SqlEntry"
    CssClass="style1">
    <Columns>
        <asp:BoundField DataField="ReordID" HeaderText="ReordID" InsertVisible="False" SortExpression="ReordID"
            Visible="False" />
        <asp:BoundField DataField="Name" HeaderText="Name" SortExpression="Name" />
        <asp:BoundField DataField="EmailID" HeaderText="EmailID" SortExpression="EmailID" />
        <asp:BoundField DataField="Password" HeaderText="Password" SortExpression="Password" />
        <asp:TemplateField HeaderText="Delete" SortExpression="Delete">
            <ItemTemplate>
                <asp:Button Text="Delete" runat="server" OnClick="Grid_Click" />
            </ItemTemplate>
        </asp:TemplateField>
    </Columns>
    <HeaderStyle BackColor="Gray" />
    <AlternatingRowStyle BackColor="#CCCCCC" />
</asp:GridView>
<asp:SqlDataSource ID="SqlEntry" runat="server" ConnectionString="<%$ ConnectionStrings:ConnectionString %>"
    SelectCommand="SELECT * FROM [Entry]"></asp:SqlDataSource>

.CS文件:

protected void Refresh_Click(object sender, EventArgs e)
{
    GridView1.DataBind();
    resetdata();
}
protected void Submit_Click(object sender, EventArgs e)
{
    string str = "INSERT INTO Entry (Name, EmailID, Password) VALUES ('" + TextBox1.Text.Trim() + "','" + TextBox2.Text.Trim() + "','" + TextBox3.Text.Trim() + "');";
    Connection conn = new Connection(str);
    Refresh_Click(sender, e);
}
protected void resetdata()
{
    TextBox1.Text = "";
    TextBox2.Text = "";
    TextBox3.Text = "";
}
protected void Grid_Click(Object sender, EventArgs e)
{
    string str = "DELETE FROM Entry WHERE RecordID = @RecordID";
    Connection conn = new Connection(str);
    GridView1.DataBind();
    resetdata();
}

连接类:

public Connection(string qry)
{
    SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Database.mdf;Integrated Security=True;User Instance=True");
    SqlCommand cmd = new SqlCommand();
    cmd.CommandType = System.Data.CommandType.Text;
    cmd.CommandText = qry;
    cmd.Connection = con;
    con.Open();
    cmd.ExecuteNonQuery();
    con.Close();
}

如何使用此网页从SQL Server 2005中删除数据? 代码中有什么问题?

1 个答案:

答案 0 :(得分:0)

您可以将CommandArgumentCommandName附加到包含ID的按钮 -

<ItemTemplate>
     <asp:Button Text="Delete" runat="server" CommandArgument="<%# Eval('ReordID') %>" CommandName="REMOVE" OnClick="Grid_Click" />
 </ItemTemplate>

...然后将一个RowCommand事件添加到GridView -

void GridView1_RowCommand(Object sender, GridViewCommandEventArgs e)
{

    if(e.CommandName=="REMOVE")
    {
        int orderId = Convert.ToInt32(e.CommandArgument);
        //Do Sql Here
    }
}