簡體   English   中英

IDENTITY_INSERT設置為OFF

[英]IDENTITY_INSERT is set to OFF

<asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False" CssClass="table table-striped"  DataKeyNames="productsID" DataSourceID="productsObj">
    <Columns>
            <asp:BoundField DataField="productsID" HeaderText="productsID" ReadOnly="True" SortExpression="productsID" />
            <asp:BoundField DataField="name" HeaderText="name" SortExpression="name" />
            <asp:BoundField DataField="price" HeaderText="price" SortExpression="price" />
            <asp:BoundField DataField="image" HeaderText="image" SortExpression="image" />
    </Columns>
</asp:GridView>
<asp:ObjectDataSource ID="productsObj" runat="server" 
     DeleteMethod="Delete" InsertMethod="Insert" 
     OldValuesParameterFormatString="original_{0}" 
     SelectMethod="GetData" 
     TypeName="productsTableAdapters.productsTableAdapter" 
     UpdateMethod="Update">
        <DeleteParameters>
            <asp:Parameter Name="Original_productsID" Type="Int32" />
        </DeleteParameters>
        <InsertParameters>
            <asp:Parameter Name="productsID" Type="Int32" />
            <asp:Parameter Name="name" Type="String" />
            <asp:Parameter Name="price" Type="Decimal" />
            <asp:Parameter Name="image" Type="String" />
        </InsertParameters>
        <UpdateParameters>
            <asp:Parameter Name="name" Type="String" />
            <asp:Parameter Name="price" Type="Decimal" />
            <asp:Parameter Name="image" Type="String" />
            <asp:Parameter Name="Original_productsID" Type="Int32" />
        </UpdateParameters>
</asp:ObjectDataSource>

<div class="col-lg-10 col-lg-offset-1 col-md-12">
    <div class="col-lg-6">
        <asp:Label ID="Label1" CssClass="h1" runat="server" Text="Add Albums"></asp:Label>
        <asp:DetailsView ID="DetailsView1" runat="server" CssClass="table table-striped" AutoGenerateRows="False" DataKeyNames="productsID" DataSourceID="productsObj" DefaultMode="Insert">
            <Fields>
                <asp:BoundField DataField="productsID" HeaderText="productsID" ReadOnly="True" SortExpression="productsID" InsertVisible="False" />
                <asp:BoundField DataField="name" HeaderText="name" ControlStyle-CssClass="input-sm form-control" SortExpression="name" />
                <asp:BoundField DataField="price" HeaderText="price" ControlStyle-CssClass=" input-sm form-control" SortExpression="price" />
                <asp:BoundField DataField="image" HeaderText="image" ControlStyle-CssClass=" input-sm form-control" SortExpression="image" />
                <asp:CommandField ShowInsertButton="True" />
            </Fields>
        </asp:DetailsView>
    </div>

SQL Server表結構:

CREATE TABLE [dbo].[products] 
(
    [productsID] INT IDENTITY (1, 1) NOT NULL,
    [name] VARCHAR(50) NOT NULL,
    [price] DECIMAL(18, 2) NOT NULL,
    [image] VARCHAR(255) NOT NULL,

    PRIMARY KEY CLUSTERED ([productsID] ASC)
);

我有一個正在顯示一些數據的gridview,我知道希望通過詳細信息視圖輸入一些新行。 由於某些奇怪的原因,我不斷收到此錯誤:

當IDENTITY_INSERT設置為OFF時,無法在表“產品”中為標識列插入顯式值。

我真的不知道它是由什么引起的,所以我堅持尋求解決方案。 任何幫助或建議都很好!

錯誤的原因是由於您試圖將值插入到具有標識列的表中而SQL建議,如果要這樣做,則必須啟用

SET IDENTITY_INSERT ON;

如果您不想在“身份”列中插入值,則可以執行以下操作

insert into table
(all columns except identity)
values
(col values for all except identity)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM