簡體   English   中英

C#可視化-Datagridview搜索,如果文本框=單元格字符串

[英]C# Visual - Datagridview search if textbox = cell string

我正在嘗試這樣做,以便在您將數據輸入DataGridView時首先檢查ID文本框是否包含DataGridView ID列中存在的字符串,如果找到匹配項則拋出錯誤。

如果不匹配,則系統可以添加數據。

我嘗試了各種代碼,使人們發表了任何無效的文章。 這是我的最新消息。

private void btnadd_Click(object sender, EventArgs e)
{
    Label label25 = new Label();

    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        if (row.Cells[0].Value.ToString() == IDtxtbox.Text)
        {
            label25.Text = "ID was already created,try some other number";
            break;
        }
        else
        {
            dataGridView1.Rows.Add(IDtxtbox.Text, Nametxtbox.Text);
            break;
        }
    }
}

在上面的代碼中,如果第一行不包含該值,則您要添加該值。

您可以通過以下方式進行檢查:

var exists= dataGridView1.Rows.Cast<DataGridViewRow>()
                         .Where(row => !row.IsNewRow)
                         .Select(row => row.Cells[0].Value.ToString())
                         .Any(x => this.IDtxtbox.Text == x);

if(!exists)
{
    //Add rows here
}

不要忘記using System.Linq;添加using System.Linq;

如果您要使用Linq,Reza的答案是完美的,但是如果您不熟悉Linq,並且需要一個更簡單的解決方案,請執行以下操作:

想法是檢查所有包含ID的行。 如果該行中的任何一個具有該ID,則hasDuplicate變為true。 在檢查完所有行( foreach循環)之后,您應該決定要做什么( if-else語句):喜歡顯示一條消息( label25.Text )或添加新行( dataGridView1.Rows.Add )。

    private void btnadd_Click(object sender, EventArgs e)
    {          
        bool hasDuplicate=false;

        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            if (row.Cells[0] !=null && row.Cells[0].Value.ToString() == IDtxtbox.Text)
            { 
                hasDuplicate = true; 
                break;
            }                   
         }

         if(hasDuplicate)
             label25.Text = "ID was already created,try some other number";

          else   
          {
             label25.Text.Clear();                
             dataGridView1.Rows.Add(IDtxtbox.Text, Nametxtbox.Text);
          }

    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM