我想要唯一的行。循环应该检查datagridview中的所有行,并查看它是否与文本框中的文本匹配,如果不匹配,它会将文本框中的值添加到datagridview。 我的问题:只有第一行工作,循环只遍历datagridview中的第一行,为什么不会继续通过其他行?从datagridview删除重复的行c#
private void laggtill_Click(object sender, EventArgs e)
{
bool dublett = false;
foreach (DataGridViewRow r in dataGridView1.Rows)
{
if(r.Cells[0].Value.ToString() == txtNamn.Text) // txtnamn is a textbox
{
dublett = true;
MessageBox.Show("Varan finns redan, gör om!");
}
break;
}
if(dublett == false)
{
DataRow dr;
dr = dt.NewRow();
dr["Namn"] = txtNamn.Text;
dr["Pris"] = txtPris.Text;
dr["Varunummer"] = txtVNr.Text;
dr["Saldo"] = txtSaldo.Text;
dt.Rows.Add(dr);
dataGridView1.DataSource = dt.DefaultView;
clearRow();
spara();
}
txtNamn.Text = "";
txtPris.Text = "";
txtSaldo.Text = "";
txtVNr.Text = "";
}
break;外部如果你需要放入 – George
Ya,因为'break'在if块之外,不管它在第一行中发现了什么,它都会跳出foreach循环。如果你在'if'中移动'break',那么它只会在第一次发现重复时跳出。 –