日期:2014-05-17  浏览次数:20390 次

三层实现修改方法
请各位帮忙看下错误,调用方法语句提示“最匹配的方法具有一些无效参数”,我不知道那个方法能不能有textbox.text这样的参数?参数个数都对过了,没有问题。

//修改
  protected void btnUpdate_Click(object sender, EventArgs e)
  {
  usid = Request.QueryString["mid"];//前一个传递的表ID,根据ID进行修改方法
  bool bol = registerinfobll.ModifyTwo((txtshipunit.Text.Trim(), Convert.ToDateTime(txtdoc.Text.Trim()), Convert.ToDateTime(txtdelivery.Text.Trim()), txtcustomers.Text.Trim(), txtuser.Text.Trim(), txtlogistics.Text.Trim(), txtoutbound.Text.Trim(), txtstate.Text.Trim(), txtinsurance.Text.Trim(), txttranunit.Text.Trim(), txttranorder.Text.Trim(), Convert.ToDouble(txtcost.Text.Trim()), txtsettlement.Text.Trim(), txtshippeople.Text.Trim(), Convert.ToDateTime(txtexpected.Text.Trim()), Convert.ToDateTime(txtserved.Text.Trim()), txttrackone.Text.Trim(), txttracktwo.Text.Trim(), usid);
  if (bol)
  {
  Response.Write("<script>alert('修改成功')</script");
  Response.Redirect("~/logsingleregistration/retistration.aspx");
  }
  else
  {
  Response.Write("<script>alert('修改失败!')</script>");
  }
  }


------解决方案--------------------
最匹配的方法具有一些无效参数
方法的参数个数 参数类型确认下

报这个错的话就是参数的问题了
好好看下你修改方法的参数类型
------解决方案--------------------
看看是不是你的参数多了 代码感觉没问题的
------解决方案--------------------
你不眼晕吗??

封成对象先
------解决方案--------------------
ModifyTwo()这个方法中传递的参数有些与原方法的参数类型不一样
比如ModifyTwo(int a,double b,string c){}
而你调用的时候写成class.ModifyTwo("s",-1,0.1);
这样的话三个参数都不匹配,应该你是的参数类型写错了,或者是这么多的参数有的你没有排列好位置
------解决方案--------------------
C# code

registerinfobll.ModifyTwo(txtshipunit.Text.Trim(), Convert.ToDateTime(txtdoc.Text.Trim()), Convert.ToDateTime(txtdelivery.Text.Trim()), txtcustomers.Text.Trim(), txtuser.Text.Trim(), txtlogistics.Text.Trim(), txtoutbound.Text.Trim(), txtstate.Text.Trim(), txtinsurance.Text.Trim(), txttranunit.Text.Trim(), txttranorder.Text.Trim(), Convert.ToDouble(txtcost.Text.Trim()), txtsettlement.Text.Trim(), txtshippeople.Text.Trim(), Convert.ToDateTime(txtexpected.Text.Trim()), Convert.ToDateTime(txtserved.Text.Trim()), txttrackone.Text.Trim(), txttracktwo.Text.Trim(), usid);