简体   繁体   English

如何检查项目是否已在datagridview中存在

[英]How to check if Items already exist in datagridview

如何防止新输入的条形码已经存在于datagridview中,如果存在,则添加数量或总和。

放置条形码列(如datakey),并在需要添加新行时使用Datagrid.Rows.Find([条形码值])搜索值是否存在

Try This Tested Code Call dataGridview_CellEndEdit Event : 尝试以下经过测试的代码调用dataGridview_CellEndEdit事件:

    private void GvOpStock_CellEndEdit(object sender, DataGridViewCellEventArgs e)
    {
        try
        {
            if (e.ColumnIndex != 0) 

                for (int row = 0; row < GvOpStock.Rows.Count - 1; row++)
                {

                    if (GvOpStock.Rows[row].Cells[1].Value != null &&
                        row != e.RowIndex &&
                        GvOpStock.Rows[row].Cells[1].Value.Equals(GvOpStock.Rows[e.RowIndex].Cells[e.ColumnIndex].Value))
                    {

                        MessageBox.Show("Duplicate");
                        return;

                    }
                    else
                    {

                        //Add To datagridview

                    }

                }
        }
        catch (Exception ex)
        {

        }
    }

I got an answer to my question 我得到了我问题的答案

Boolean found = false;

        if (!string.IsNullOrWhiteSpace(this.textBox1.Text))
        {

            if (e.KeyCode == Keys.Enter)
            {
                string conbarcode = this.textBox1.Text;

                conbarcode = this.textBox1.TextLength == 10 ? this.textBox1.Text : Convert.ToDouble(this.textBox1.Text).ToString("0000000000").ToString();

                foreach (DataGridViewRow row in this.dataGridView1.Rows)
                {
                    if (row.Cells[0].Value.Equals(conbarcode))
                    {
                        // row exists
                        found = true;

                        row.Cells["qty"].Value = Convert.ToInt32(row.Cells["qty"].Value) + 1;
                        row.Cells["qty"].Selected = true;
                        //MessageBox.Show("Row already exists");
                        break;
                    }
                }

                if (found)
                {
                    this.textBox1.BackColor = Color.LightGreen;
                    return;
                }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM