我正在尝试这样做,以便当您将数据输入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;
}
}
}
答案 0 :(得分:1)
在上面的代码中,如果第一行不包含该值,则添加该值。
您可以这样检查:
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;
答案 1 :(得分:0)
想法是检查包含ID的所有行。如果任何行具有该ID,则hasDuplicate
变为真。在检查了所有行(foreach
循环)之后,您应该决定做什么(if-else
语句):喜欢显示消息(label25.Text
)或添加新行({{ 1}})。
dataGridView1.Rows.Add