我有直接測試存儲過程和它的作品,但是當我從代碼中調用它,我得到的錯誤:錯誤與存儲過程(參數有關)
「過程或函數editItem已經指定的參數太多「
有人可以告訴我爲什麼會發生這種錯誤嗎?是否因爲我的sqlDataSource從BIND傳遞參數,存儲過程不需要?我以爲存儲過程忽略了額外的參數。
感謝
編輯:下面是一些有關該問題的更多信息。它讓我感到困惑。基本上,我有一堆項目添加到模板,如下所示:
<EditItemTemplate>
<asp:TextBox runat="server" ID="tbEditItemDescription" Text='<%# Bind("itemDescription") %>'></asp:TextBox>
</EditItemTemplate>
現在據我所知,Bind自動提供參數。我也有5個參數我手動添加,像這樣:
<UpdateParameters>
<asp:ControlParameter DbType="Int16" Name="itemTypeId" ControlID="dvIndividualItem$ddlItemTypes"
PropertyName="SelectedValue" />
<asp:ControlParameter DbType="Int16" Name="itemSubTypeId" ControlID="dvIndividualItem$ddlItemSubTypes"
PropertyName="SelectedValue" />
<asp:ControlParameter DbType="Int64" Name="itemSubSubTypeId" ControlID="dvIndividualItem$ddlItemSubSubTypes"
PropertyName="SelectedValue" />
<asp:ControlParameter DbType="Int16" Name="numberOfTurns" ControlID="dvIndividualItem$tbEditEffectTurns"
PropertyName="Text" />
<asp:ControlParameter DefaultValue="0" DbType="Int64" Name="itemId" ControlID="gvItems"
PropertyName="SelectedDataKey.Value" />
現在,當我調試SQL數據源,我發現,它實際上只具有5個參數(ⅰ手動添加的那些)。當它實際上具有比它需要的LESS參數更多的參數時,它怎麼可能會給我一個錯誤的參數?或者我只是看錯了地方?我查看了UpdateParameters ==> base ==> count,其中包含5.
感謝您的幫助。
這將是更容易幫助,如果你發佈的代碼。 –
我們可以看到你如何調用sproc嗎?額外的參數是不允許的,因爲你已經發現:)。如果您正在重新使用某個命令,請在添加參數之前執行.Parameters.Clear()。 – DaveHogan
http://forums.asp.net/t/1000526.aspx/1 –