Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在datagridview中插入前防止重复_C#_Datagridview - Fatal编程技术网

C# 在datagridview中插入前防止重复

C# 在datagridview中插入前防止重复,c#,datagridview,C#,Datagridview,我想在选择一行后添加(或插入)行,但首先我需要检查我添加的内容是否重复,每次我输入两个相同的值时,我都会得到奇怪的结果,我使用了foreach和for语句,但这些都没有帮助我: private void plus() { for (int i = 0; i < dataGridView2.Rows.Count; i++) { if (textBox1.Text == dataGridView2.Rows[i].

我想在选择一行后添加(或插入)行,但首先我需要检查我添加的内容是否重复,每次我输入两个相同的值时,我都会得到奇怪的结果,我使用了
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();
    }
private void plus()
{
对于(int i=0;i

您正在尝试插入每个迭代。 插入应在循环的末尾:

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);
for(int i=0;i
代码中的问题是,如果文本与行文本不匹配,它将在不搜索整个网格的情况下向网格中添加文本。还建议使用单元名称而不是单元索引

    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();
    }
private void plus()
{
bool IsDuplicate=false;
对于(int i=0;i
#创建一个静态列表框或列表,并使用此代码我使用它存储多个数据

 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);
     }

使用此代码。。。您需要清空数据集 使用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();

消息框弹出后,仍然会将其添加到datagridview!,如何防止这种情况将
中断
替换为
返回