0

現在、GridViewから行を削除する際に非常に奇妙な問題が発生しています。次のコードがあり、次の例外がスローされます。

ORA-01008:すべての変数がバインドされているわけではありません

 <asp:TemplateField HeaderText="Delete">
                <ItemTemplate>
                    <asp:LinkButton ID="DeleteBTN" runat="server" OnClientClick="return confirm('Are you sure you want to delete this move request?')" CommandName="Delete" Text="Delete"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>


   <asp:BoundField DataField="UNIQUEKEY" HeaderText="Unique Key"
                SortExpression="UNIQUEKEY" />

 <asp:SqlDataSource ID="GridViewDataSource" runat="server" 
        ConnectionString="<%$ ConnectionStrings:Oracle1ConnectionString %>" 
        ProviderName="<%$ ConnectionStrings:Oracle1ConnectionString.ProviderName %>" 

        SelectCommand="SELECT ORIGINATOR, TO_CHAR(REQUESTDATE, 'MM/DD/YYYY') as REQUESTDATE, PARTNUMBER, REQUESTQTY, MOVEFROM, MOVETO, COMPLETEDBY, TO_CHAR(COMPLETION_DATE, 'MM/DD/YYYY') as COMPLETION_DATE, COMMENTS, RESPONSETIME, PROCESS_FLAG, UNIQUEKEY FROM MATERIALMOVEREQUEST WHERE RTRIM(PROCESS_FLAG) = :ProcessFlag ORDER BY REQUESTDATE DESC"
        DeleteCommand="DELETE FROM MATERIALMOVEREQUEST WHERE UNIQUEKEY = :UNIQUEKEY">
        <SelectParameters>
            <asp:ControlParameter ControlID="RequestTypeLabel" DefaultValue="" Name="ProcessFlag" PropertyName="Text" Type="String" />
        </SelectParameters>
        <DeleteParameters>
            <asp:Parameter Name="UNIQUEKEY" Type="Decimal" />
        </DeleteParameters>

UNIQUEKEYはOracleテーブルの「数値」フィールドであり、現在「10進数」タイプであるすべての種類のデータ型を試しました。

4

2 に答える 2

1

SqlDataSource の Deleting イベントを使用して、次のコードを記述してみてください。

e.InputParameters["UNIQUEKEY"] = value;

値は、データベースに送信したいものです

于 2012-06-20T13:05:54.583 に答える
0

自分で修正し、主キーを GridView パラメーター (DATAKEYNAMES) に追加する必要がありました。ここに私のコードスニペットがあります:

 <asp:GridView ID="MMRGrid" runat="server" AutoGenerateColumns="False" DataKeyNames="UNIQUEKEY" 
        DataSourceID="GridViewDataSource" Width="980px" OnRowDataBound="GridViewRowEventHandler" 
        EmptyDataText="No Data Found" AllowSorting="True">
        <Columns>
            <asp:TemplateField HeaderText="Delete" Visible = "true">
                <ItemTemplate>
                    <asp:LinkButton ID="DeleteBTN" runat="server" OnClientClick="return confirm('Are you sure you want to delete this move request?')" CommandName="Delete" Text="Delete"></asp:LinkButton>
                </ItemTemplate>
            </asp:TemplateField>
于 2012-06-19T19:45:54.680 に答える