阻止编辑DataGridView记录

时间:2016-10-10 22:05:23

标签: c# datagridview edit

是否可以阻止重复记录,还可以编辑选定的记录?我正在研究类似的事情。 Example

当我有大量记录并且我更新了第二个或第三个记录时,每当我尝试使用第一个记录的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;

        }
    }

1 个答案:

答案 0 :(得分:1)

尝试使用Validation events

如果将DataGridView绑定到DataSet,则可以更轻松地遍历DataSet中的值以查找重复项。请参阅DataSource property