0

私は使用しています:

ビジュアル Web 開発者 2009 アクセス 2007

製品テーブルに挿入しようとしていますが、「基準式のデータ型が一致しません」というエラーが表示され続けます。

編集セクションと削除セクションは正常に機能します。

商品の編集

    <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" 
        DataKeyNames="product_id" DataSourceID="AccessDataSource1" DefaultMode="Insert" 
        Height="50px" Width="125px">
        <Fields>
            <asp:BoundField DataField="product_id" HeaderText="product_id" 
                InsertVisible="False" ReadOnly="True" SortExpression="product_id" />
            <asp:BoundField DataField="product_name" HeaderText="product_name" 
                SortExpression="product_name" />
            <asp:BoundField DataField="product_desc" HeaderText="product_desc" 
                SortExpression="product_desc" />
            <asp:BoundField DataField="product_cost" HeaderText="product_cost" 
                SortExpression="product_cost" />
            <asp:BoundField DataField="product_amount" HeaderText="product_amount" 
                SortExpression="product_amount" />
            <asp:BoundField DataField="category_id" HeaderText="category_id" 
                SortExpression="category_id" />
            <asp:CommandField ShowInsertButton="True" />
        </Fields>
    </asp:DetailsView>
    <asp:AccessDataSource ID="AccessDataSource1" runat="server" 
        DataFile="~/App_Data/Fandangles.mdb" 
        DeleteCommand="DELETE FROM [product] WHERE [product_id] = ?" 
        InsertCommand="INSERT INTO [product] ([product_name], [product_desc], [product_cost], [product_amount], [category_id]) VALUES (?, ?, ?, ?, ?)" 
        SelectCommand="SELECT * FROM [product]" 
        UpdateCommand="UPDATE [product] SET [product_name] = ?, [product_desc] = ?, [product_cost] = ?, [product_amount] = ?, [category_id] = ? WHERE [product_id] = ?">
        <DeleteParameters>
            <asp:Parameter Name="product_id" Type="Int32" />
        </DeleteParameters>
        <UpdateParameters>
            <asp:Parameter Name="product_name" Type="String" />
            <asp:Parameter Name="product_desc" Type="String" />
            <asp:Parameter Name="product_cost" Type="Decimal" />
            <asp:Parameter Name="product_amount" Type="Int32" />
            <asp:Parameter Name="category_id" Type="Int32" />
            <asp:Parameter Name="product_id" Type="Int32" />
        </UpdateParameters>
        <InsertParameters>
            <asp:Parameter Name="product_id" Type="Int32" />
            <asp:Parameter Name="product_name" Type="String" />
            <asp:Parameter Name="product_desc" Type="String" />
            <asp:Parameter Name="product_cost" Type="Decimal" />
            <asp:Parameter Name="product_amount" Type="Int32" />
            <asp:Parameter Name="category_id" Type="Int32" />
        </InsertParameters>
    </asp:AccessDataSource>
</p>
</asp:Content>


DB: Access DB

product_id  -   Autonumber
product_name    -   Text
product_desc    -   Text
product_cost    -   Currency
product_amount  -   Number
category_id     -   Number - This is a lookup field 

何か案は?

4

1 に答える 1

0

主キー「product_id」を挿入に渡す必要がありますか? ID/PK の場合は不要です。

挿入SQLのパラメーターではありませんが、データソースの挿入パラメーターのパラメーターです。

これを試して

<InsertParameters>
        <asp:Parameter Name="product_id" Type="Int32" />
        <asp:Parameter Name="product_name" Type="String" />
        <asp:Parameter Name="product_desc" Type="String" />
        <asp:Parameter Name="product_cost" Type="Decimal" />
        <asp:Parameter Name="product_amount" Type="Int32" />
        <asp:Parameter Name="category_id" Type="Int32" />
</InsertParameters>
于 2009-12-11T00:50:46.743 に答える