0

我有一个更新表格的过程,该过程将从网格视图中的网络表单中调用。我不断收到“程序或函数 FraudAlertUpdateMobileNo 指定了太多参数”,但传递的参数数量正确 下面是我的数据源代码:

<asp:SqlDataSource ID="ConfigByAcct" runat="server" ConnectionString="<%$         ConnectionStrings:FraudAlertsConnectionString %>" 
            SelectCommand="FraudAlertsConfigAcct" SelectCommandType="StoredProcedure"
            UpdateCommand="FraudAlertUpdateMobileNo" UpdateCommandType="StoredProcedure" >
            <SelectParameters>
                <asp:ControlParameter ControlID="inst"  Name="INSTID" PropertyName="SelectedValue" Type="Int32" />
                <asp:ControlParameter ControlID="txtValue" Name="ACCTNUM" PropertyName="Text" Type="Int64" />
            </SelectParameters>
            <UpdateParameters>
                        <asp:ControlParameter ControlID="inst"  Name="INSTID" PropertyName="SelectedValue" Type="Int32" />
                        <asp:Parameter Type ="Int64" Name ="ACCTNUM" />
                        <asp:Parameter Type ="String" Name ="SMSAlertTo" />
                        <asp:Parameter Type ="String" Name ="FullName" />
                        <asp:Parameter Type ="String" Name ="Application" DefaultValue="AlertWeb" />
            </UpdateParameters>
        </asp:SqlDataSource>

下面是我的程序代码

CREATEPROCEDURE [dbo].[FraudAlertUpdateMobileNo](
@InstID int,
@ACCTNUM  bigint,
@MobileNo varchar(500),
@FullName varchar(250),
@Application varchar(50)
) 
AS
4

3 回答 3

0

确保网格视图具有 DataKeyNames 属性

<asp:GridView ID="GridView1" DataKeyNames="ACCTNUM" >
于 2013-10-08T10:45:34.240 回答
0

也许您可以使用 SqlDataSource 的更新并检查参数

protected void SqlDataSource1_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
    int x = e.Command.Parameters.Count;
}
于 2013-10-08T08:44:18.907 回答
0

<asp:Parameter Type ="String" Name ="SMSAlertTo" />// 错误在这里。它应该是 <asp:Parameter Type ="String" Name ="MobileNo"/>

于 2013-10-08T08:47:13.797 回答