【发布时间】:2014-08-19 09:50:53
【问题描述】:
我用简单的存储过程创建了一个数据库,用于删除、插入、选择和更新数据库三个表中的记录。除了我的删除语句之外,所有这些都有效。我在尝试时收到Procedure or function has too many arguments 消息。我尝试删除它拥有的一个参数,最终删除了表的所有记录,而不是我的目标。我究竟做错了什么?我感觉错误出在我的 SQL 脚本中,但我不知道我可以做些什么不同的事情来让它工作。
消息:
过程或函数 Delete_Special 指定的参数过多。
我的 SQL 脚本:
CREATE PROCEDURE [Delete_Special]
@ThisID INT
AS
DELETE FROM [Daily_Specials]
WHERE @ThisID = [ID]
GO
调用存储过程的事件:
Protected Sub BTN_DeleteEvt_Click(sender As Object, e As EventArgs)
SQL_Specials.Delete()
End Sub
删节标记:
<asp:SqlDataSource ID="SQL_Specials" runat="server" DeleteCommand="Delete_Special" DeleteCommandType="StoredProcedure">
<DeleteParameters>
<asp:ControlParameter ControlID="GV_Eagles_Specials" Name="ThisID" PropertyName="SelectedIndex"
Type="Int32" />
</DeleteParameters>
</asp:SqlDataSource>
<asp:GridView ID="GV_Eagles_Specials" runat="server" DataSourceID="SQL_Specials" AutoGenerateColumns="False">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:Button ID="BTN_EditSpecial" runat="server" CssClass="BigText" Text="Edit" OnClick="BTN_EditEvent_Click" />
</ItemTemplate>
</asp:TemplateField>
<asp:BoundField DataField="Date" HeaderText="Date" SortExpression="Date" HtmlEncode="False" DataFormatString="{0:MM/dd/yyyy}" />
<asp:BoundField DataField="Special" HeaderText="Special" SortExpression="Special" HtmlEncode="False" />
<asp:BoundField DataField="Side" HeaderText="Side" SortExpression="Side" HtmlEncode="False" />
<asp:BoundField DataField="Special_Price" HeaderText="Special Price" SortExpression="Special_Price" HtmlEncode="False" />
<asp:BoundField DataField="Soup" HeaderText="Soup" SortExpression="Soup" HtmlEncode="False" />
<asp:BoundField DataField="Soup_Price" HeaderText="Soup Price" SortExpression="Soup_Price" HtmlEncode="False" />
<asp:TemplateField ShowHeader="False">
<ItemTemplate>
<asp:Button ID="BTN_DeleteEvt" runat="server" CausesValidation="False" CommandName="Delete" Text="Delete" CssClass="BigText" OnClick="BTN_DeleteEvt_Click" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
【问题讨论】:
-
你能发布你的 Delete() 方法的主体吗?我假设这是您为 SP 调用分配输入参数的地方...
标签: asp.net sql-server vb.net tsql