我想在选择一行后添加(或插入)行,但首先我需要检查我添加的是不是重复,每次我输入两个相同的值,我实现了奇怪的结果,我正在使用foreach
现在for
声明,但这些都没有帮助我:
private void plus()
{
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
if (textBox1.Text == dataGridView2.Rows[i].Cells[0].Value.ToString())
{
MessageBox.Show("duple");
break;
}
else
{
dataGridView2.Rows.Add(textBox1.Text.Trim(), pictureBox3.Image, pictureBox6.Image);
break;
}
}
textBox1.SelectAll();
textBox1.Focus();
}
答案 0 :(得分:4)
您正在尝试插入每次迭代。 插入应该在循环的末尾:
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
if (textBox1.Text == dataGridView2.Rows[i].Cells[0].Value.ToString())
{
MessageBox.Show("duple");
return;
}
}
dataGridView2.Rows.Add(textBox1.Text.Trim(), pictureBox3.Image, pictureBox6.Image);
答案 1 :(得分:0)
代码中的问题是,如果文本与行文本不匹配,它将在不搜索完整网格的情况下将文本添加到网格中。还建议使用单元名称而不是单元格索引。
private void plus()
{
bool IsDuplicate = false;
for (int i = 0; i < dataGridView2.Rows.Count; i++)
{
if (textBox1.Text == dataGridView2.Rows[i].Cells[0].Value.ToString())
{
IsDuplicate = true;
MessageBox.Show("duple");
break;
}
}
if (!IsDuplicate)
dataGridView2.Rows.Add(textBox1.Text.Trim(), pictureBox3.Image, pictureBox6.Image);
textBox1.SelectAll();
textBox1.Focus();
}
答案 2 :(得分:0)
使用此代码...您需要清空数据集 在使用datagridview和数据绑定时
DataSet ds = new DataSet();
cmd = new SqlCommand("SELECT * from Table", connexion);
da = new SqlDataAdapter(cmd);
dataGridView1.ClearSelection();
ds.Clear();
da.Fill(ds, "Your Dataset here");
dataGridView1.DataSource = ds.Tables[0];
dataGridView1.Refresh();
答案 3 :(得分:-2)
#CREARE静态列表或列表&lt;&gt;并使用此代码我用它来存储多个数据..
if (!listBox5.Items.Contains(id + "-" + pass + "-" + room + "-" + remoter + "-" + roompass))
{
listBox5.Items.Add(id + "-" + pass + "-" + room + "-" + remoter + "-" + roompass);
Console.WriteLine("NOT THERE ");
form1.dataGridView1.Rows.Insert(0, id, pass, room, remoter, roompass);
}