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

发布于 2024-11-01 11:20:41 字数 381 浏览 1 评论 0原文

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

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

Table还有一个不允许为null的Col4。

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

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

为什么我会遇到异常?

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

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

Table has also a Col4 that does not allow null.

Error: Cannot insert the value NULL into column Col4

When I execute the sCmd in the Management Studio everything works fine.

Why do I get the exception?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

黑凤梨 2024-11-08 11:20:41

Table 还有一个不允许为 null 的 Col4。

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

Table has also a Col4 that does not allow null.

There is your answer. If Management Studio works anyway, it is probably inserting a default value?

寻梦旅人 2024-11-08 11:20:41

您之所以会出现异常,是因为您没有为 Col4 列插入值,该列不允许 null,而且我只能假设它没有默认值。

但你好像问错了问题;你不是想问,为什么查询在SSMS中运行吗?

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

You get the exception because you are not inserting a value for the Col4 column, which does not allow nulls and, I can only assume, does not have a default value.

But it seems like you've asked the wrong question; don't you mean to be asking, why does the query run in SSMS?

I suspect the answer to that question would be buried somewhere in the actual syntax, which you have elected not to include.

枕头说它不想醒 2024-11-08 11:20:41

如果您没有指定列的值,则采用NULL,除非有约束另有规定。

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

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

If you don't specify a value for a column NULL is taken, unless there is a constraint which says otherwise.

As Col4 doesn't allow NULL and looks like it doesn't have a default value constraint that is why you get the error.

You haven't shown the SQL you are executing in SSMS, but I'd guess, different database (production/development), different table?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文