使用存储过程编辑GridView

时间:2013-10-08 08:36:22

标签: asp.net stored-procedures

我有一个更新表的过程,将从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>

以下是我的程序代码

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

3 个答案:

答案 0 :(得分:0)

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

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

答案 1 :(得分:0)

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

答案 2 :(得分:0)

确保网格视图具有DataKeyNames属性

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