阻止编辑DataGridView记录

本文关键字:记录 DataGridView 编辑 | 更新日期: 2023-09-27 18:12:21

是否有可能阻止重复的记录,但也编辑选定的记录?我正在研究类似的东西。示例

当我有许多记录,我更新了第二个或第三个,我希望一个警告每当我尝试使用第一个记录的ID;这工作得很好。但是,每当我尝试编辑第一个记录的名称、城市等时,就会弹出重复ID错误,因为我没有更改ID;它把自己算作复制品。不知道该怎么办。我尝试使用断点,但我没有看到任何有趣的东西。谢谢。

private void btnUpdate_Click(object sender, EventArgs e)
    {
        if (dgvProfiles.SelectedCells.Count <= 0)
        {
            MessageBox.Show("No record was selected to update.");
        }
        else {
            for (int row = 0; row < dgvProfiles.Rows.Count; row++)
            {
                for (int col = 0; col < dgvProfiles.Columns.Count; col++)
                {
                    if (dgvProfiles.Rows[row].Cells[col].Value != null &&
                      dgvProfiles.Rows[row].Cells[col].Value.Equals(txtEmail.Text.Trim()))
                    {
                        MessageBox.Show("Duplicate email was entered.");
                        return;
                    }
                    else if (dgvProfiles.Rows[row].Cells[col].Value != null &&
                      dgvProfiles.Rows[row].Cells[col].Value.Equals(txtID.Text.Trim()))
                    {
                        MessageBox.Show("Duplicate ID was entered.");
                        return;
                    }
                }
            }
            DataGridViewRow newDataRow = dgvProfiles.Rows[indexRow];
            newDataRow.Cells[0].Value = txtID.Text;
            newDataRow.Cells[1].Value = txtName.Text;
            newDataRow.Cells[4].Value = txtEmail.Text;
            newDataRow.Cells[5].Value = txtCity.Text;
            newDataRow.Cells[6].Value = cbxState.Text;
        }
    }

阻止编辑DataGridView记录

尝试使用验证事件。

如果你将你的DataGridView绑定到一个数据集,它将更容易在数据集中查找重复的值。参见数据源属性