日期:2014-05-18  浏览次数:20438 次

ObjectDataSource的困惑!!!!!!
我有一个access数据库,其中有一张课程表,结构为
-----------------------------------------
ID                     (序号)
CourseName     (课程名称)

数据库中已有约束,CourseName不能重复.生成强类型的gss_courseTableAdapter时,其中会有一默认的Delete方法,
gss_courseTableAdapter.Delete(int   Original_CourseID),我想在逻辑类中重新封装一下该方法,gss_courseTableAdapter中添加了一个查询DeleteCoures:
    DELETE   FROM   `gss_course`   WHERE   `CourseName`   =   ?  

参数只传入CourseName就可,因为CourseName不重复.其逻辑类为:

public   class   Course
{
      ....略
          public   bool   DeleteCourse(string   CourseName)
        {
                bool   flag   =   false;
                GSS.gss_courseDataTable   gd   =       this.CourseTableAdapter.IsUniqueCourse(CourseName);
                if   (gd.Count   ==   1)
                {
                        //该课程存在
                        this.CourseTableAdapter.DeleteCoures(CourseName);
                        flag   =   true;
                }
                return   flag;
        }

      ....
}
绑定到时ObjectDataSource及GridView,运行显示数据,点删除一条记录时,出错:
ObjectDataSource“CourseObjectDataSource”未能找到带参数的非泛型方法“DeleteCoures”:   CourseName,   Original_CourseID。  
说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。  

异常详细信息:   System.InvalidOperationException:   ObjectDataSource“CourseObjectDataSource”未能找到带参数的非泛型方法“DeleteCoures”:   CourseName,   Original_CourseID。

源错误:  

执行当前   Web   请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。    

堆栈跟踪:  


[InvalidOperationException:   ObjectDataSource“CourseObjectDataSource”未能找到带参数的非泛型方法“DeleteCoures”:   CourseName,   Original_CourseID。]
      System.Web.UI.WebControls.ObjectDataSourceView.GetResolvedMethodData(Type   type,   String   methodName,   IDictionary   allParameters,   DataSourceOperation   operation)   +1306298
      System.Web.UI.WebControls.ObjectDataSourceView.ExecuteDelete(IDictionary   keys,   IDictionary   oldValues)   +1103
      System.Web.UI.DataSourceView.Delete(IDictionary   keys,   IDictionary   oldValues,   DataSourceViewOperationCallback   callback)   +75
      System.Web.UI.WebControls.GridView.HandleDelete(GridViewRow   row,   Int32   rowIndex)   +927
      System.Web.UI.WebControls.GridView.HandleEvent(EventArgs   e,   Boolean   causesValidation,   String   validationGroup)   +1155
      System.Web.UI.WebControls.GridView.OnBubbleEvent(Object   source,   EventArgs   e)   +95
      System.Web.UI.Control.RaiseBubbleEvent(Object   source,