作者热门文章
- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在尝试将订单详细信息插入我的数据库,但它一直在说:
Cannot insert explicit value for identity column in table 'Orders' when IDENTITY_INSERT is set to OFF.
我想做的只是使用 WebSecurity.CurrentUserId
将用户 UserId 插入 UserId 列 - 为什么这不起作用?
我有:
dbase.Execute("INSERT INTO Orders
(UserId, OrderId, Status)
VALUES
(@0, @1, @2)",
WebSecurity.CurrentUserId,
Session["OSFOID"],
"Confirmed");`
因此,如您所见,它非常简单。但是,为什么它不起作用?
我的表定义是:
最佳答案
除非您启用执行身份插入的能力(通过为该表设置身份插入on),否则不允许您触摸该列 - 数据库拥有它。
要么短暂地启用身份插入,要么:不要尝试插入 UserId(让数据库创建一个新 ID)。
根据在线书籍,SET IDENTITY_INSERT
:
SET IDENTITY_INSERT Orders ON
INSERT INTO Orders (UserId, OrderId, Status) VALUES (@0, @1, @2)
SET IDENTITY_INSERT Orders OFF
不过,更有可能的是:如果这是 Orders
表,那么身份不应该在 OrderId
上吗?当然,您仍然会遇到同样的问题,因为您正在尝试控制 OrderId
。
关于c# - IDENTITY_INSERT 设置为 OFF 时出现问题? :-/,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6645908/
我是一名优秀的程序员,十分优秀!