0
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 时,一切正常。

为什么我会得到异常?

4

3 回答 3

2

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

有你的答案。如果 Management Studio 仍然可以工作,它可能是在插入一个默认值?

于 2011-04-15T08:37:38.037 回答
2

你得到了例外,因为你没有为Col4列插入一个值,这不允许nulls,我只能假设,没有默认值。

但是您似乎问错了问题;您不是要问,为什么查询在 SSMS 中运行?

我怀疑这个问题的答案隐藏在你选择不包含的实际语法中的某个地方。

于 2011-04-15T08:38:16.473 回答
1

如果您未指定列的值NULL,则除非constraint另有说明。

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

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

于 2011-04-15T08:39:50.447 回答