阻止编辑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绑定到一个数据集,它将更容易在数据集中查找重复的值。参见数据源属性