在gridview C#中搜索名称

时间:2018-10-26 07:57:34

标签: c#

This is the table. On the right are the names我有一个gridview,它显示数据库中的一个表。我想使用文本框和按钮在gridview中搜索名称。这是我到目前为止所拥有的。当我要搜索时,出现一个消息框:对象引用未设置对象引用。

private void btn_zoek_Click(object sender, EventArgs e)
{
    string searchValue = tb_SearchOverzicht.Text;

    metroGrid1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
    try
    {
        foreach (DataGridViewRow row in metroGrid1.Rows)
        {
            if (row.Cells[2].Value.ToString().Equals(searchValue))
            {
                row.Selected = true;
                break;
            }
        }
    }
    catch (Exception exc)
    {
        MessageBox.Show(exc.Message);
    }
}

1 个答案:

答案 0 :(得分:1)

检查您要使用的值和对象是否填充了数据而不是null

在您的行中

if (row.Cells[2].Value.ToString().Equals(searchValue))

您应该首先检查该单元格是否存在并具有值,例如:

if(row.Cells[2] != null && row.Cells[2].Value.ToString() == searchValue)
{
     // Some code
}

请确保您的searchValue不为空,没有任何字符或者甚至没有正确的格式:

if(!String.IsNullOrWhiteSpace(searchValue))

但是我不认为这是必要的,只是很高兴。 这里的目标是:并非必须填写所有值。似乎该单元格在该列中没有值,该行可能是过滤器行,甚至是空的,甚至更糟:网格甚至没有初始化。因此,请在使用值或对象之前尝试检查它们是否已填充。