Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 接受4个参数的方法没有重载_C#_Asp.net_Gridview - Fatal编程技术网

C# 接受4个参数的方法没有重载

C# 接受4个参数的方法没有重载,c#,asp.net,gridview,C#,Asp.net,Gridview,我正在尝试更新gridview。在这里,我使用了三层体系结构方法 这是我的GridView <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="ResllerID" ForeColor="#333333" GridLines="None" OnRowDeleting="DeleteRecord" EmptyDataTex

我正在尝试更新gridview。在这里,我使用了三层体系结构方法

这是我的GridView

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" CellPadding="4" DataKeyNames="ResllerID"
          ForeColor="#333333" GridLines="None" OnRowDeleting="DeleteRecord" EmptyDataText="There are no data records to display." 
        AllowPaging="True" AllowSorting="True" onrowediting="GridView1_RowEditing" onrowupdating="GridView1_RowUpdating"
        AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" >
        <AlternatingRowStyle BackColor="White" />
        <Columns>
                <asp:TemplateField HeaderText="Reseller Name" SortExpression="ResellerName">  
                    <EditItemTemplate>  
                        <asp:TextBox ID="ResellerTextBox" runat="server" Text='<%# Bind("ResellerName") %>'></asp:TextBox>  
                    </EditItemTemplate>  
                    <ItemTemplate>  
                <asp:Label ID="Label1" runat="server" Text='<%# Bind("ResellerName") %>'></asp:Label>  
                    </ItemTemplate>  
                </asp:TemplateField>
                <asp:TemplateField HeaderText="Mobile Number" SortExpression="MobileNumber">  
                    <EditItemTemplate>  
                        <asp:TextBox ID="MobileTextBox" runat="server" Text='<%# Bind("MobileNumber") %>'></asp:TextBox>  
                    </EditItemTemplate>  
                    <ItemTemplate>  
                <asp:Label ID="Label2" runat="server" Text='<%# Bind("MobileNumber") %>'></asp:Label>
                  </ItemTemplate>  
                 </asp:TemplateField>

                  <asp:TemplateField HeaderText="Reference Number" SortExpression="ReferenceNumber">  
                    <EditItemTemplate>  
                        <asp:TextBox ID="ReferenceTextBox" runat="server" Text='<%# Bind("ReferenceNumber") %>'></asp:TextBox>  
                    </EditItemTemplate>  
                    <ItemTemplate>  
                <asp:Label ID="Label3" runat="server" Text='<%# Bind("ReferenceNumber") %>'></asp:Label>
                    </ItemTemplate>  
                </asp:TemplateField>

        </Columns>
        <FooterStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
        <HeaderStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
        <PagerStyle BackColor="#FFCC66" ForeColor="#333333" HorizontalAlign="Center" />
        <RowStyle BackColor="#FFFBD6" ForeColor="#333333" />
        <SelectedRowStyle BackColor="#FFCC66" Font-Bold="True" ForeColor="Navy" />
        <SortedAscendingCellStyle BackColor="#FDF5AC" />
        <SortedAscendingHeaderStyle BackColor="#4D0000" />
        <SortedDescendingCellStyle BackColor="#FCF6C0" />
        <SortedDescendingHeaderStyle BackColor="#820000" />
    </asp:GridView>
经销商代码:

public static void UpdateReseller(Reseller reseller)
    {
        string query = "UPDATE [Resellers] SET [ResellerName] = @ResellerName, [ReferenceNumber] = @ReferenceNumber WHERE [ResellerID] = @ResellerID";
        SqlCommand cmd = new SqlCommand(query);

        cmd.Parameters.AddWithValue("@ResellerName", SqlDbType.Text).Value = reseller.ResellerName;
        cmd.Parameters.AddWithValue("@MobileNumber", SqlDbType.Text).Value = reseller.MobileNumber;
        cmd.Parameters.AddWithValue("@ReferenceNumber", SqlDbType.Text).Value = reseller.ReferenceNumber;

        cmd.Parameters.AddWithValue("@ResllerID", SqlDbType.Text).Value = reseller.ResllerID;

        DbUtility.UpdateDb(cmd);
    }

您的
UpdateReseller
方法只接受一个参数:一个
resoller


如果希望能够将各个部分传递给方法,则需要修改签名或使用适当的参数创建重载。

您使用四个参数调用它:

ResellerBL.UpdateReseller(resellerId, name.Text, mobileNumber.Text, referenceNumber.Text);
但它只接受一个:

public static void UpdateReseller(Reseller reseller)
有两种选择

  • 创建一个新的分销商对象并传递:
  • 修改(或添加重载)方法以获取四个参数:

  • 错误会准确地告诉您问题所在。。学习的一部分是理解意义。。如果您有一个方法,请查看它需要的参数的数量。您不能将更多参数传递给期望更少的方法
    public static void UpdateReseller(Reseller reseller)
    
    var myreseller = New Reseller();
    myresller.Id = resellerId;
    //etc
    
    ResellerBL.UpdateReseller(myreseller);
    
    public static void UpdateReseller(int resellerId, string resellerName, string resellerMobile, string resellerRefNum)