如何在给定行值的情况下从datagridview中查找行ID?

时间:2010-06-08 09:02:06

标签: c# datagridview

有人能帮帮我吗?

我必须从1个选定的数组中找到行号,我将其存储在一个单独的数组中并随机地尝试从datagridview获取行号

换句话说: 如果我知道datagridview中给定行的列值(例如,对于此行,FirstName =='Bud'),我该如何获取行ID?

4 个答案:

答案 0 :(得分:19)

您可以使用LINQ查询:

        int index = -1;

        DataGridViewRow row = dgv.Rows
            .Cast<DataGridViewRow>()
            .Where(r => r.Cells[columnId].Value.ToString().Equals("Some string"))
            .First();

        index = row.Index;

答案 1 :(得分:1)

可能有一些更容易的方法,你以某种方式过滤它,但目前我只能想到循环它。

int rowIndex = -1;
foreach(DataGridViewRow row in DataGridView1.Rows)
{
    if(row.Cells(1).Value.ToString().Equals("mystr"))
    {
        rowIndex = row.Index;
        break;
    }
}
// rowIndex is now either the correct index or -1 if not found

答案 2 :(得分:0)

来自:http://www.vbforums.com/showthread.php?t=610134

  

调用的Find方法   BindingSource和它将返回   匹配行的索引(如果有)   一。如果有,你索引   BindingSource获取该行和   更新相应的字段。如果   没有,你称之为AddNew   BindingSource创建的方法   一个新行并设置相应的   字段。

答案 3 :(得分:0)

//If U Have Add CheckBox To Ur Datagridview
int rowIndex = -1;
DataGridViewCheckBoxCell oCell;
foreach (DataGridViewRow row in dataGridView1.Rows)
{
    oCell = row.Cells[0] as DataGridViewCheckBoxCell;
    bool bChecked = (null != oCell && null != oCell.Value && true == (bool)oCell.Value);
    if (true == bChecked)
    {
        rowIndex = row.Index;
       //ur code
    }
}