新添加的代码出现错误 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没有给出与所需的形式参数相对应的参数