如何在添加新行之前使所有列都允许为null

本文关键字:null 添加 新行之 | 更新日期: 2023-09-27 18:22:11

如何在向数据表添加新行之前使所有列都允许为null。

 dt.Rows.Add(dt.NewRow());

此行抛出异常

列XXX不允许空

如何解决此问题。

如何在添加新行之前使所有列都允许为null

在填充并准备好保存行之前,您不会添加该行。

DataRow row = dt.NewRow();

用值填充行。。。

dt.Rows.Add(row);

通常数据库设计器指定列不能为null是有原因的。例如,它可能是主键或外键,或者是强制性信息。

如果您确定不为该特定记录的该列提供任何数据是可以的,请尝试传递一个空字符串。

通常最好先初始化内存中的整行,然后再将其发送到数据库(而不是在已经存在时逐字段填充)。

但是,如果绝对必须这样做,并且DBMS支持它,则可以将NOT NULL约束声明为递延,因此在事务提交之前不会检查这些约束。下面是一个Oracle示例。

这很少是一个好的解决方案。从重新设计数据库开始。

请考虑从所有不必要的字段中删除NOT NULL约束。

此外,如果有任何字段是必需的,但您仍然不想在行创建期间填充它,请在数据库或中间层(ORM或其他)中设置默认值

编辑:然而,在这种情况下,您似乎只是在尝试将一个空行传递给db,然后再用数据初始化它。这永远不会奏效;-)