新添加的代码出现错误 CS7036

Posted

技术标签:

【中文标题】新添加的代码出现错误 CS7036【英文标题】:Error CS7036 with newly added code 【发布时间】:2018-08-16 11:28:43 【问题描述】:

为什么会出现这个错误...

我有一个名为 Product 的类,这是代码的一部分:

public void insertProduct(int cid, string name, string price, byte[] image, int quantity, string desc, int company, int compid)


    DB db = new DB();
    db.openConnection();
    SqlParameter[] parameters = new SqlParameter[8];

    parameters[0] = new SqlParameter("@c_id", SqlDbType.Int);
    parameters[0].Value = cid;

    parameters[1] = new SqlParameter("@p_name", SqlDbType.VarChar, 50);
    parameters[1].Value = name;

    parameters[2] = new SqlParameter("@s_qty", SqlDbType.Int);
    parameters[2].Value = quantity;

    parameters[3] = new SqlParameter("@price", SqlDbType.VarChar, 50);
    parameters[3].Value = price;

    parameters[4] = new SqlParameter("@desc", SqlDbType.VarChar);
    parameters[4].Value = desc;

    parameters[5] = new SqlParameter("@img", SqlDbType.Image);
    parameters[5].Value = image;

    parameters[6] = new SqlParameter("@comp", SqlDbType.Int);
    parameters[6].Value = company;

    parameters[7] = new SqlParameter("@comp_id", SqlDbType.Int);
    parameters[7].Value = compid;

    db.setData("spr_insert_product", parameters);
    db.closeConnection();


我从表单“添加”按钮调用这个类

private void BTN_ADD_Click(object sender, EventArgs e)

    if (TB_NAME.Text == string.Empty)
    
        MessageBox.Show("Enter The Product Name", "Empty Data", MessageBoxButtons.OK, MessageBoxIcon.Error);
    

    if (TB_PRICE.Text == string.Empty && TB_QUANTITY.Text == string.Empty)
    
        MessageBox.Show("Quantity and Price Can't Be Empty | But Can Be Equal To 0", "Empty Data", MessageBoxButtons.OK, MessageBoxIcon.Error);
    
    else if (PB_BROWSE_IMAGE.Image == null)
    
        MessageBox.Show("No Image Selected", "No Image", MessageBoxButtons.OK, MessageBoxIcon.Error);
    

    else
    
        MemoryStream ms = new MemoryStream();
        PB_BROWSE_IMAGE.Image.Save(ms, PB_BROWSE_IMAGE.Image.RawFormat);
        byte[] image = ms.ToArray();

            product.insertProduct(Convert.ToInt32(COMBO_CATEGORIES.SelectedValue), TB_NAME.Text,
                                 TB_PRICE.Text, image, Convert.ToInt32(TB_QUANTITY.Text), TB_DESCRIPTION.Text);
        MessageBox.Show("New Product Inserted Successfully", "New Product", MessageBoxButtons.OK, MessageBoxIcon.Information);
    

在此代码的最后一行:

product.insertProduct(

是我得到这个错误的地方,我不知道为什么? 仅供参考...在我向方法中添加代码之前一切正常:

int company, int compid

与添加到数据库的另外 2 列和代码相关联:

parameters[6] = new SqlParameter("@comp", SqlDbType.Int);
parameters[6].Value = company;

parameters[7] = new SqlParameter("@comp_id", SqlDbType.Int);
parameters[7].Value = compid;

如果我采用这个新添加的代码,我不会收到错误消息。 谁能发现这里出了什么问题以及如何解决?

【问题讨论】:

请标记您正在使用的语言。我猜是C#。还有究竟什么是错误(错误代码可能有多个错误消息)。我只发现了这个CS 7036: There is no argument given that corresponds to the required formal parameter,这似乎足够描述性 - 你正在调用方法并且没有传递足够的参数 product.insertProduct 中的类型与您创建的参数数组不匹配 是的...它是 C#。 错误是:“没有给出与 'Product.InsertProduct(int, string, string, byte[image], int, string, int , int)' 【参考方案1】:

感谢 Piro 的评论... 深夜,我没看到: 这是执行此操作的代码:

 product.insertProduct(Convert.ToInt32(COMBO_CATEGORIES.SelectedValue), TB_NAME.Text,
                                 TB_PRICE.Text, image, Convert.ToInt32(TB_QUANTITY.Text), TB_DESCRIPTION.Text, TB_COMPANY.Text, TB_COMP_ID.Text);
            MessageBox.Show("New Product Inserted Successfully", "New Product", MessageBoxButtons.OK, MessageBoxIcon.Information);

【讨论】:

以上是关于新添加的代码出现错误 CS7036的主要内容,如果未能解决你的问题,请参考以下文章

CS7036 C#WinForm没有给出与所需的形式参数相对应的参数

如果我的代码中没有“静态”,为啥会出现错误 CS0120?

4线串行接口是啥意思,SI4模式指的是否SPI模式?Sitronix7036的LCD驱动芯片,很急

在 ASP.NET Core 6.0 中获取参数错误

编译器错误信息: CS1056: 意外的字符的处理办法

添加 watchkit 时带有 cocoapods 的 Swift 项目出现新错误