如何在添加新行之前使所有列都允许为null
本文关键字:null 添加 新行之 | 更新日期: 2023-09-27 18:22:11
如何在向数据表添加新行之前使所有列都允许为null。
dt.Rows.Add(dt.NewRow());
此行抛出异常
列XXX不允许空
如何解决此问题。
在填充并准备好保存行之前,您不会添加该行。
DataRow row = dt.NewRow();
用值填充行。。。
dt.Rows.Add(row);
通常数据库设计器指定列不能为null是有原因的。例如,它可能是主键或外键,或者是强制性信息。
如果您确定不为该特定记录的该列提供任何数据是可以的,请尝试传递一个空字符串。
通常最好先初始化内存中的整行,然后再将其发送到数据库(而不是在已经存在时逐字段填充)。
但是,如果绝对必须这样做,并且DBMS支持它,则可以将NOT NULL约束声明为递延,因此在事务提交之前不会检查这些约束。下面是一个Oracle示例。
这很少是一个好的解决方案。从重新设计数据库开始。
请考虑从所有不必要的字段中删除NOT NULL约束。
此外,如果有任何字段是必需的,但您仍然不想在行创建期间填充它,请在数据库或中间层(ORM或其他)中设置默认值
编辑:然而,在这种情况下,您似乎只是在尝试将一个空行传递给db,然后再用数据初始化它。这永远不会奏效;-)