2017-06-02 59 views
0

反复会是一个什么逻辑来检查,如果输入的GridView屡禁不止?[https://i.stack.imgur.com/rZ7Yv.png]检查值在GridView控件

+0

处理的DataGridView的'CellValueChanged'事件和检查单元格内容重复? – pitersmx

+1

为什么这会被投票?它没有显示任何研究努力 – EpicKip

+1

[C#在Datagridview中查找重复值]的可能重复(https://stackoverflow.com/questions/10279723/c-sharp-find-duplicate-values-in-datagridview) – EpicKip

回答

2
private bool DuplicateExist() 
     { 
      var existingValues = dataGridView1.Rows 
            .OfType<DataGridViewRow>() 
            .Where(x => x.Cells["Bar Code"].Value != null) 
            .Select(x => x.Cells["Bar Code"].Value.ToString()) 
      return (existingValues.Count != existingValues.Distinct().Count()) 
     } 

这能否帮助你?

+0

您不需要'ToList()'。 – pitersmx

+0

是的谢谢@pitersmx –

+0

现在,您可以在'CellValueChanged'事件处理程序中调用此方法,以检查每次用户更改单元格输入值时是否有重复。 – pitersmx

0

你也可以像下面这样做在一个查询:

 dataGridView1.Rows.Add("254"); 
     dataGridView1.Rows.Add("124"); 
     dataGridView1.Rows.Add("543"); 
     dataGridView1.Rows.Add("234"); 
     dataGridView1.Rows.Add("254"); 

     bool anyDuplicated = dataGridView1.Rows 
      .OfType<DataGridViewRow>() 
      .Where(x => x.Cells["Column1"].Value != null) 
      .Select(x => x.Cells["Column1"].Value.ToString()) 
      .GroupBy(x => x) 
      .Where(g => g.Count() > 1) 
      .Select(g => g.Key) 
      .Any();