【问题标题】:ORA-01008: not all variables bound (Delete Event on ASP.net Gridview)ORA-01008: 并非所有变量都绑定(在 ASP.net Gridview 上删除事件)
【发布时间】:2012-06-21 16:18:16
【问题描述】:

我目前在从 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 表中的一个“数字”字段,我尝试了所有类型的数据类型,目前它是一个“十进制”类型。

【问题讨论】:

    标签: c# asp.net oracle command sql-delete


    【解决方案1】:

    使用SqlDataSource的Deleting事件并尝试编写如下代码:

    e.InputParameters["UNIQUEKEY"] = value;
    

    值是您要发送到数据库的值

    【讨论】:

    • 这也是一个很好的方法。没想到。
    • 必须在其位置才能使用 e.InputParameters[...]
    【解决方案2】:

    自己修复了它,必须将主键添加到 GridView 参数 (DATAKEYNAMES)。这是我的代码 sn-p:

     <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>
    

    【讨论】:

      猜你喜欢
      • 2021-12-11
      • 1970-01-01
      • 2011-09-22
      • 2021-12-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-29
      • 2012-09-05
      相关资源
      最近更新 更多