【发布时间】:2014-05-10 14:46:16
【问题描述】:
我的错误如下:
当 IDENTITY_INSERT 设置为 OFF 时,无法为表“Snacks”中的标识列插入显式值。 说明:执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。
异常详情:
System.Data.SqlClient.SqlException:当 IDENTITY_INSERT 设置为 OFF 时,无法在表“Snacks”中插入标识列的显式值。
我创建了一个带有 SQL 数据库的表,该表具有唯一的 ID、描述和价格选项,主键是 ID。
如何在 Visual Web Developer 2010 中修复此错误?
<asp:SqlDataSource ID="sdsSnacks" runat="server"
ConnectionString="<%$ ConnectionStrings:cs3201 %>"
DeleteCommand="DELETE FROM [Snacks] WHERE [SID] = @SID"
InsertCommand="INSERT INTO [Snacks] ([Price], [Description]) VALUES (@Price, @Description)"
SelectCommand="SELECT [Price], [Description], [SID] FROM [Snacks]"
UpdateCommand="UPDATE [Snacks] SET [Price] = @Price, [Description] = @Description WHERE [SID] = @SID">
<DeleteParameters>
<asp:Parameter Name="SID" Type="Int32" />
</DeleteParameters>
<InsertParameters>
<asp:Parameter Name="Price" Type="Decimal" />
<asp:Parameter Name="Description" Type="String" />
</InsertParameters>
<UpdateParameters>
<asp:Parameter Name="Price" Type="Decimal" />
<asp:Parameter Name="Description" Type="String" />
<asp:Parameter Name="SID" Type="Int32" />
</UpdateParameters>
</asp:SqlDataSource>`
【问题讨论】:
-
这是一个 SQL 错误,而不是 ASP.NET 错误。您是否有正在运行的特定 SQL 查询可以向我们展示?
-
我不知道,有没有办法检查?我是初学者。
-
您使用的是什么技术?某些东西(您或您正在使用的工具)正在创建一个
INSERT命令,该命令试图为identity列设置一个值。要么改变查询,所以它不会,或者(正如人们所回答的那样)为特定表使用SET IDENTITY_INSERT -
我正在使用 Visual-Web-Developer 2010 和 Asp.Net
标签: sql sql-server