[英]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.