最佳重载方法匹配...有一些无效参数

Posted

技术标签:

【中文标题】最佳重载方法匹配...有一些无效参数【英文标题】:The best overloaded method match for... has some invalid arguments 【发布时间】:2015-10-14 14:25:26 【问题描述】:

我在我的项目中的 DataSet("SDMDAL.xsd") 中使用 DataAdapter("SDM_Tran_GenerateInvoice")。

下面是 DataAdapter 的结构以及其中的存储过程名称:

下面是我使用的表结构:

我在名为 SDM.InvoiceBLL.cs类文件 中调用此 DataAdapter:

using SDMDALTableAdapters;

public class SDM_Invoice

    private SDM_Tran_GenerateInvoiceTableAdapter _GenerateInvoiceTableAdapter = null;
    protected SDM_Tran_GenerateInvoiceTableAdapter Adapter
    
        get
        
            if (_GenerateInvoiceTableAdapter == null)
                _GenerateInvoiceTableAdapter = new SDM_Tran_GenerateInvoiceTableAdapter();

            return _GenerateInvoiceTableAdapter;
        
    

    #region GET
    //to show data in Invoice Grid
    public SDMDAL.SDM_Tran_GenerateInvoiceDataTable SelectInvoice(string _SPID)
    
        return Adapter.SelectInvoice(_SPID);
    
    //to show data in 1st hidden Grid
    public SDMDAL.SDM_Tran_GenerateInvoiceDataTable GetInvoiceBillingBySPID(string _SPID)
    
        return Adapter.GetInvoiceBillingBySPID(_SPID);
    
    //to fetch InvoiceID for unique key generation
    public SDMDAL.SDM_Tran_GenerateInvoiceDataTable GetInvoiceID()
    
        return Adapter.GetInvoiceID();
    
    //to fetch InvoiceNumber for unique key generation
    public SDMDAL.SDM_Tran_GenerateInvoiceDataTable GetInvoiceNumber()
    
        return Adapter.GetInvoiceNumber();
    
    #endregion   

    public string Insert(string InvoiceID, string SPfoID, string InvoiceLineNo, string InvoiceNo, string InvoiceType, string BillingIDfoID, string BusinessUnit, string DirectCost, string InvfoStatusID, string Status, DateTime Date, string AccountCode)
    
        string query = Convert.ToString(Adapter.Insert1(InvoiceNo, SPfoID, InvoiceLineNo, InvoiceNo, InvoiceType, BillingIDfoID, BusinessUnit, DirectCost, InvfoStatusID, Status, Date, AccountCode));
        return query;
    

    public SDM_Invoice()
    

    

然后调用Default.aspx.cs页面内类文件的“插入”函数,保存按钮点击记录:

 protected void btnInvoice_Click(object sender, EventArgs e)

    generateInvoiceId();
    generateInvoiceNumber();

    string InvType = rlbInvType.SelectedValue;
    string Status = "Draft";

    string BillingID;
    string DirectCost;
    string BusinessUnit;
    string StatusID;

    string AccCode;

    foreach (GridDataItem itm in rgData.Items)
    
        BillingID = itm["BillingID"].Text;
        DirectCost = itm["DCIDescription"].Text;
        BusinessUnit = itm["BUName"].Text;
        StatusID = itm["BUfoStatusID"].Text;

        Label lb = (Label)itm.FindControl("Label1");
        string InvLineNo = lb.Text;

        try
        
            SDM.Invoice.Insert(lblInvId.Text, _SPID, InvLineNo, lblInvNo, InvType, BillingID, BusinessUnit, DirectCost, StatusID, Status, DateTime.Now, AccCode);
        
        catch (Exception ex)
        

        
    

我多次重建我的项目,当我运行我的网页“Default.aspx.cs”时,它总是给我以下错误:

'SDM_Invoice.Insert(string, string, string, string, string, string, string, string, string, string, System.DateTime, string)' 的最佳重载方法匹配有一些无效参数 em>

我搜索了许多与我的问题相关的文章,但找不到任何解决我的问题的方法。

这是我第一次使用 TableAdapter。 请帮我看看我的代码有什么问题?我在其中缺少什么。 提前致谢。

【问题讨论】:

【参考方案1】:

除了倒数第二个之外的所有参数都需要是字符串,但您似乎传递了一些非字符串值,例如 lblInvNo,这似乎是一个用户界面元素。

检查除倒数第二个之外的每个参数的类型,并确保它们都是字符串。

【讨论】:

非常感谢您的帮助。我忘了为这个标签添加 .Text。将“lblInvNo”更改为“lblInvNo.Text”并解决了错误。

以上是关于最佳重载方法匹配...有一些无效参数的主要内容,如果未能解决你的问题,请参考以下文章

最佳重载方法匹配...有一些无效参数

C# 匹配的最佳重载方法...有一些无效参数

最佳重载方法匹配有一些无效参数 C#

需要帮助 'string.endswith(string)' 的最佳重载方法匹配有一些无效参数

错误:“最佳重载方法匹配”和“参数 1:无法从 'string' 转换为 'int'”

说出几条 Java 中方法重载的最佳实践?