gpt4 book ai didi

c# - Datagrid 添加时删除重复行

转载 作者:行者123 更新时间:2023-11-29 20:37:00 25 4
gpt4 key购买 nike

嗨,我想在输入 videoNo 时向数据网格添加一个值。到文本框并单击“确定”,这将显示:

Enter a VideoNo

这是输出

Output when Click OK

然后,当我再次添加相同的视频时,它将在数据网格中重复,如下所示: enter image description here

如何避免这种重复?这是我的添加代码

 private void button2_Click(object sender, EventArgs e)
{
listBox1.Visible = false;
if (txt_vidNo.Text == "")
{
MessageBox.Show("Input Video Number", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);

}
else
{
DialogResult dt = MessageBox.Show("Add Video?", "Continue", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

if (dt == DialogResult.Yes)
{

panel4.Visible = true;
con = koneksyon.getConnect();
con.Open();
cmd = new SqlCommand("select * from Stock where videoNo ='" + txt_vidNo.Text + "'", con);
dr = cmd.ExecuteReader();
while (dr.Read())
{

dataGridView1.Rows.Add(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7], dr[8]);
}
txt_vidNo.Clear();
btn_Rent.Visible = true;
panelPay.Visible = true;
cmd.Dispose();
con.Close();
dr.Dispose();
}
else
{
txt_vidNo.Clear();
}

}
}

我想要的是,当我输入相同的值时,它不会在 Datagrid 中重复,我该怎么做?

最佳答案

您只需检查唯一键的值是否已存在于数据网格中。

您可以使用 LINQ 来执行此操作,如果“列目录编号”中的值与读取的目录编号相匹配,则检查具有非空值的所有行。

while (dr.Read())
{
if (dataGridView1.Rows.Cast<DataGridViewRow>().Where(row => row.Cells[0].Value != null).All(row => (int) row.Cells[0].Value != dr[0]))
dataGridView1.Rows.Add(dr[0], dr[1], dr[2], dr[3], dr[4], dr[5], dr[6], dr[7], dr[8]);
}

关于c# - Datagrid 添加时删除重复行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38761793/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com