验证Datagridview上的行

本文关键字:Datagridview 验证 | 更新日期: 2023-09-27 18:07:05

所以,我有这个datagridview显示我的整个表,因为我们都知道主字段不能是空的或重复的,所以我必须做一些验证之前保存到数据库。

我已经设法使我的验证看到,如果我有一个现有的行,我改变主键为"空"或重复的值,它锁定在该单元格中的数据视图,直到我修复它。

问题来了,当我添加一个新的行,如果我不把datagridview集中在主键的单元格验证事件不触发,我得到一个错误,当我更新数据库,因为datagridview接受我的空值。

这是我在行验证的尝试,但它不工作,我希望你的帮助请。我希望该行被阻塞,直到用户为我的主键提供适当的输入,该列在索引5上被称为"LOOPS",但是我发布的代码只有在我踩到主键时才会触发锁定!

private void dataGridView2_RowValidating(object sender, DataGridViewCellCancelEventArgs e)
    {
        if (dataGridView2.Rows[e.RowIndex].Cells[5].ToString() == "")
        {
            dataGridView2.Rows[e.RowIndex].ErrorText = "El campo clave de la tabla (Loops) no puede estar en blanco";
            e.Cancel = true;
        }
    }

验证Datagridview上的行

只要确保PK列是只读的,并且最终是隐藏的,所以没有用户会编辑它。

根据您的数据访问层设计(您用于加载和更新/插入数据的逻辑),您通常可以在插入时不为PK字段传递任何值,数据库将为您生成一个值(如果它是一个自动递增的整数)。

如果你仍然有问题,显示你是如何加载数据和绑定网格到加载的数据,以及你是如何保存更改回数据库的