<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テーブルの構造:IDENTITY_INSERTがOFF
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)
);
Iいくつかのデータを表示しているGridViewのは、私は詳細ビューを経由して、いくつかの新しい行に入力したい知っていています。いくつかの奇妙な理由で、私はこのエラーを得続ける:
Cannot insert explicit value for identity column in table 'products' when IDENTITY_INSERT is set to OFF.
私は本当にこれを行うために引き起こしているかわからないので、私は解決策のためにこだわっています。どんな助けや助言も素晴らしいでしょう!
オブジェクトデータソースのInsertMethodをチェックする必要があります。 'productsId'カラムに値を挿入しようとしていますか?それは 'IDENTITY'カラムなのでうまくいきません... –
ここで、挿入方法のどこに詳細が表示されているのか確認しますか?私はaspx.csファイルをチェックしましたが、私のために作成された挿入メソッドはありません。申し訳ありません、私はたった1週間前にC#を使い始めました! –
'.aspx'ファイルに移動し、' Insert'名( 'InsertMethod'属性の値)にカーソルを置き、右クリックして' Go To Definition'を選択すると、メソッドに移動しますそれは 'InsertMethod'として使用されています(あなたのコードビハインドである' .aspx.cs'ファイルにあると思います) –