ADO.NET SqlCommand:无法将值NULL插入列中

时间:2011-04-15 08:35:08

标签: c# ado.net sqlcommand

sCnd =  "INSERT INTO .dbo.Table(Col1, Col2, Col3) Values (1,2,3);

using (DbCommand tempCommand2 = CommandFactory.CreateCommand(db))
{
    tempCommand2.CommandText = sCmd;
    tempCommand2.ExecuteNonQuery();
}

表还有一个不允许null的Col4。

错误:无法将值NULL插入列Col4

当我在Management Studio中执行sCmd时,一切正常。

为什么我会得到例外?

3 个答案:

答案 0 :(得分:2)

  

表还有一个不允许null的Col4。

有你的答案。如果Management Studio仍然有效,它可能会插入默认值吗?

答案 1 :(得分:2)

您收到异常是因为您没有为Col4列插入一个值,该值不允许nulls,我只能假设没有默认值。

但似乎你提出了错误的问题;你不是要问,为什么查询在SSMS中运行?

我怀疑的答案问题会隐藏在实际语法的某处,而您选择不包含该语法。

答案 2 :(得分:1)

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

由于Col4不允许NULL,并且看起来它没有defaultconstraint,这就是您收到错误的原因。

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