如何在datagridview中查找名称?

时间:2013-06-27 00:05:26

标签: c# datagridview

任何人都可以帮我找到单词中的字符串,即如何在datagridview中搜索名称的任何部分?例如。 RamGopalVarma,如果我在搜索选项中只键入varma,它应该在gridview中找到。

以下是我的代码,仅在我提供总名称时才有效。当我将“Equals”改为“Contains”时,它无效。

private void button3_Click(object sender, EventArgs e)
{            
  dataGridView1.ClearSelection();
  // Code to search the  alphanumneric Part Number (in Column1 header called "Name") and highlihgt the row
  foreach (DataGridViewRow row in dataGridView1.Rows)
  {
    if (row.Cells["Name"].Value.ToString().Equals(textBox3.Text, StringComparison.CurrentCultureIgnoreCase))
      {
        dataGridView1.Rows[row.Index].Selected = true;
        dataGridView1.Rows[row.Index].DefaultCellStyle.BackColor = Color.Yellow;
      }
  }
}

3 个答案:

答案 0 :(得分:1)

试试这个Pravii

if (row.Cells["Name"].FormattedValue.ToString().Contains(textBox1.Text))

或搜索所有单元格......

foreach (DataGridViewRow r in dataGridView1.Rows)
{
      foreach (DataGridViewCell c in r.Cells)
      {
            if(c.FormattedValue.ToString().Contains(textBox1.Text))
            {
                //do your work.....
            }         

      }
 }

试试这个pravii

if(c.FormattedValue.ToString().ToLower().Contains(textBox1.Text.ToLower()))

答案 1 :(得分:0)

为什么不使用包含类似:

if (row.Cells["Name"].Value.ToString().Contains(textBox3.Text))
{
  ...the rest of the code if match
}

答案 2 :(得分:0)

问题是.Equals方法有一个忽略大小写的选项,而.Contains方法是区分大小写的。你可以尝试类似的东西:

if (row.Cells["Name"].Value.ToString().ToUpperInvariant().Contains(textBox3.Text.ToUpperInvariant()))
{
// do something
}

如果是我,我会在循环之前将textBox3文本转换为仅一次。