如何使用c#获取gridview中的特定数据?

How to get a specific data in gridview using c#?

我想知道如何从 gridview 中检索特定数据。我的数据库由 id、type 和 name 等列组成。假设我的 gridview 的内容如下例所示:

ID 类型 姓名

1 吉他 Ibanez

2 吉他 吉布森

我想要的是获取 Name 下的值,比方说 "Ibanez"。我能够使用数据键检索 Id 的值,但我不知道如何在 Gridview 中获取 Name 的值。我在下面包含了代码以更好地理解我的意思。

protected void GuitarBrandsGridViewBtn_Click(object sender, EventArgs e)
{
    Button btn = sender as Button;
    GridViewRow gridrow = btn.NamingContainer as GridViewRow;
    int id = Convert.ToInt32(GuitarBrandsGridView.DataKeys[gridrow.RowIndex].Value.ToString());
    con.Open();
    cmd.CommandText = "DELETE FROM [guitarBrands] WHERE id=" + id;
    cmd.Connection = con;
    int a = cmd.ExecuteNonQuery();
    con.Close();
    if (a > 0)
    {
        bindgridviewguitarbrands();
    }
    System.IO.File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItemsIbanezDetails" + id + ".aspx");
    System.IO.File.Delete(@"C:\Users\User1\Documents\Visual Studio 2015\WebSites\MusicStore\Pages\GuitarItemsIbanezDetails" + id + ".aspx.cs");

}

您可以像这样访问特定的列

GuitarBrandsGridView.Rows[gridrow.RowIndex].Cells[1].Text;

您可以在网格视图中使用模板字段而不是像这样的绑定字段:

<asp:TemplateField HeaderText="Name">
     <ItemTemplate>
          <asp:Label ID="lblName" runat="server" Text='<%# Eval("ColumnNameOfYourDatasourceForName") %>' />
     </ItemTemplate>
</asp:TemplateField>

然后从以下代码中获取标签及其代码中的文本:

protected void GuitarBrandsGridViewBtn_Click(object sender, EventArgs e)
{
    Button btn = sender as Button;
    GridViewRow gridrow = btn.NamingContainer as GridViewRow;

    Label lblName = gridrow.FindControl("lblName");
    string name = lblName.Text;

}