c# - 无法将 NULL 值插入到列、表中;列不允许为空...但是该列是主键并且具有自动增量属性

标签 c# sql-server asp.net-mvc azure

我已经发布了一个网络应用程序,它在 azure 上运行。我在我的计算机(本地主机)上测试的 Web 应用程序项目,然后在 Web 应用程序上测试。当我测试创建新行数据(例如 PersonTable 上的新人)时,它在我的本地主机上运行,​​但是当我测试发布的 Web 应用程序时,它会抛出此错误:

Cannot insert the value NULL into column 'ID_ANTEC_PERS', table 'Telejdb.dbo.ANTECEDENTES_PERSONALES'; column does not allow nulls. INSERT fails. The statement has been terminated.

该列 (ID_ANTEC_PERS) 是该表 (ANTECEDENTES_PERSONALES) 的 ID,但我将此列设置为我的 sql server DB 上的 Identity(1,1) 属性。当我在我的计算机(本地主机)上工作这个项目时,我没有遇到这个问题,我认为这是因为该项目知道该自动增量属性的顺序。但现在,一旦 Web 应用程序发布并在 azure 上运行,我想查看项目的代码,但我意识到它是在 .dll 文件上编译的,所以我无法编辑 Web 应用程序项目。有帮助吗?指导?建议?我将不胜感激。

提前致谢

最佳答案

检查表设计中的字段,然后检查表设计中的复选框,然后它允许在表中插入空值

id 应该是一个递增的值。

你需要设置这个,否则如果你有一个不可为空的列,没有默认值,如果你不提供任何值,就会出错。

在 SQL Server Management Studio 中设置自动增量:

Open your table in Design
Select your column and go to Column Properties
Under Indentity Specification, set (Is Identity)=Yes and Indentity Increment=1

在本地,如果您没有遇到此问题,则意味着您必须更新

azure database

关于c# - 无法将 NULL 值插入到列、表中;列不允许为空...但是该列是主键并且具有自动增量属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37894646/

相关文章:

c# - 从文件中获取原始文件名

c# - 在 C++ 非托管 dll 和 C# 托管 dll 之间发送 Byte[][]

java - 在 JDBC 代码中执行 sql 约束

sql - SQL Server 查询完成通知

c# - ASP.NET MVC : removing item from a list in a nested structure always removes the last item 中的异常行为

asp.net-mvc - 如何为我的 Controller 设置一个 "Default Action",当没有其他操作匹配时将调用该 Controller ?

asp.net-mvc - 如何在 Razor 中的 ActionLinks 上指定 css 类名称?

c# - 带 Out 参数的 Oracle 存储过程

c# - 如何转换十进制?将 LINQ 与存储过程结合使用时转换为十进制

c# - 将 Do Until 循环从 VB 转换为 C#