ADO.. NET SqlCommand:不能插入NULL值到列中

本文关键字:NULL 插入 NET SqlCommand 不能 ADO | 更新日期: 2023-09-27 17:50:11

sCnd =  "INSERT INTO .dbo.Table(Col1, Col2, Col3) Values (1,2,3);
using (DbCommand tempCommand2 = CommandFactory.CreateCommand(db))
{
    tempCommand2.CommandText = sCmd;
    tempCommand2.ExecuteNonQuery();
}

表也有一个Col4,不允许为空。

错误:不能插入值NULL到列Col4

当我在管理工作室执行sCmd时,一切都很好。

为什么会出现异常?

ADO.. NET SqlCommand:不能插入NULL值到列中

表也有一个Col4,不允许为空。

这就是你的答案。如果Management Studio正常工作,它可能会插入一个默认值?

您得到异常,因为您没有为Col4列插入值,这不允许nulls,我只能假设,没有默认值。

但是看起来你问错了问题;你不是想问,为什么查询在SSMS中运行?

我怀疑这个问题的答案可能隐藏在实际语法中的某个地方,而您选择不包括在语法中。

如果您没有为列指定值,则采用NULL,除非有constraint另有说明。

由于Col4不允许NULL,看起来它没有defaultconstraint,这就是为什么你得到错误。

你没有显示你在SSMS中执行的SQL,但我猜,不同的数据库(生产/开发),不同的表?