0

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

下面是我的代码,只有在我给出全名时才有效。当我将“等于”更改为“包含”时,它不起作用。

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;
      }
  }
}
4

3 回答 3

1

试试这个普拉维

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.....
            }         

      }
 }

试试这个惯例

if(c.FormattedValue.ToString().ToLower().Contains(textBox1.Text.ToLower()))
于 2013-06-27T00:38:47.737 回答
0

为什么不使用包含之类的:

if (row.Cells["Name"].Value.ToString().Contains(textBox3.Text))
{
  ...the rest of the code if match
}
于 2013-06-27T00:28:14.407 回答
0

问题是 .Equals 方法可以选择忽略大小写,而 .Contains 方法区分大小写。您可以尝试以下方法:

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

如果是我,我只会在循环之前执行一次将 textBox3 文本转换为大写。

于 2013-06-27T01:05:53.517 回答