Asp.net 使用存储过程编辑GridView

Asp.net 使用存储过程编辑GridView,asp.net,stored-procedures,Asp.net,Stored Procedures,我有一个更新表的过程,该过程将从gridview中的webform调用。 我不断得到“过程或函数FraudAlertUpdateMobileNo指定的参数太多”,但我传递的参数数量正确 下面是我的数据源代码: <asp:SqlDataSource ID="ConfigByAcct" runat="server" ConnectionString="<%$ ConnectionStrings:FraudAlertsConnectionString %>"

我有一个更新表的过程,该过程将从gridview中的webform调用。 我不断得到“过程或函数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>

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

protected void SqlDataSource1_Updating(object sender, SqlDataSourceCommandEventArgs e)
{
    int x = e.Command.Parameters.Count;
}

//这里有错误。应该是

确保网格视图具有DataKeyNames属性

<asp:GridView ID="GridView1" DataKeyNames="ACCTNUM" >

您的程序在哪里?
<asp:GridView ID="GridView1" DataKeyNames="ACCTNUM" >