【问题标题】:ADO.NET SqlCommand: Cannot insert the value NULL into columnADO.NET SqlCommand:无法将值 NULL 插入列
【发布时间】:2011-04-15 08:35:08
【问题描述】:
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 列

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

为什么会出现异常?

【问题讨论】:

    标签: c# ado.net sqlcommand


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        【解决方案3】:

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

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

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

        【讨论】:

        • 您没有显示您在 SSMS 中执行的 SQL,但我猜,不同的数据库(生产/开发),不同的表?是的...:s
        猜你喜欢
        • 1970-01-01
        • 2013-02-27
        • 2021-10-31
        • 2012-11-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多