ods.SelectMethod = "GetNewsByTitle";
还要指定哪个程序集中的哪个类
<asp:ObjectDataSource ID="objRegisterStudentByClass" runat="server" SelectMethod="GetRegisterStudents" TypeName="Ability.DAL.Student.StudentManager"/>
    

解决方案 »

  1.   

    GetNewsByTitle在哪个程序集中的哪个类中定义
      

  2.   


    <SCRIPT runat="server">
    private void UpdateRecords(Object source, EventArgs e)
    {
      CheckBox cb;
      foreach(GridViewRow row in this.GridView1.Rows) {
        cb = (CheckBox) row.Cells[0].Controls[1];
        if(cb.Checked) {
          string oid = (string) row.Cells[1].Text;
          MyAccessDataSource.UpdateParameters.Add("date", TypeCode.DateTime, DateTime.Now.ToString());
          MyAccessDataSource.UpdateParameters.Add("orderid", oid);
          MyAccessDataSource.Update();
          MyAccessDataSource.UpdateParameters.Clear();
        }
      }
    }
    </SCRIPT>
      

  3.   

    GetNewsByTitle这个没有没有带参数的定义吧?
      

  4.   

    出现这个问题大多是在使用ObjectDataSource的时候.这时的数据读取,删除,编辑,添加等都是使用的你在BLL中抽象出来的方法.举个例子,一个表有4列属性,select以后会在detailview中产生4行内容,其中有一行是不用更新的,于是你在方法中没有设定这个参数.如果你要对这条选定的数据进行更新,那么ObjectDataSource默认是有4个属性的,但是你的方法确只有3个.这时就会出现"未能找到带参数的非泛型方法".其实你好好看看报错的内容就知道,肯定是默认的参数个数多出了你定义的个数.要解决其实也简单.一是直接删除ObjectDataSource中自动生成的那些Update参数.二是在你的方法中定义跟你显示的数据一样多的参数.大不了设定了不用.也可以将那一不要更新的字段设为单向绑定(Eval),不要用双向绑定(Bind)