Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# InvalidOperationException:ObjectDataSource找不到具有以下参数的非泛型方法:_C#_Asp.net_Gridview_Objectdatasource - Fatal编程技术网

C# InvalidOperationException:ObjectDataSource找不到具有以下参数的非泛型方法:

C# InvalidOperationException:ObjectDataSource找不到具有以下参数的非泛型方法:,c#,asp.net,gridview,objectdatasource,C#,Asp.net,Gridview,Objectdatasource,我正在尝试为本地ASP.NET页面编写代码 阅读MSDN上的帮助文件总是让我挠头,想知道它们到底意味着什么。例如,我不确定我的链接应该是什么(尽管该链接有一个有趣的例子) 一旦我掌握了工作的基本知识,我将冒险进入更深的水域 my*.aspx文件的第一行包含我的定义: <%@ Page Title="Reporter" Language="C#" MasterPageFile="~/local.Master" AutoEventWireup="true" CodeBehind="Re

我正在尝试为本地ASP.NET页面编写代码

阅读MSDN上的帮助文件总是让我挠头,想知道它们到底意味着什么。例如,我不确定我的链接应该是什么(尽管该链接有一个有趣的例子)

一旦我掌握了工作的基本知识,我将冒险进入更深的水域

my*.aspx文件的第一行包含我的定义:

<%@ Page Title="Reporter" Language="C#" MasterPageFile="~/local.Master"
    AutoEventWireup="true" CodeBehind="Reporter.aspx.cs"
    Inherits="AcpServiceNS.Reporter" %>
控件将位于*.aspx页面上,并将用于显示数据:

<asp:GridView ID="gvReport" AllowSorting="true" AutoGenerateColumns="false" AllowPaging="true" Font-Size="Small" PageSize="30" Width="100%"
  OnRowDataBound="Report_RowDataBound"
  OnRowCommand="Report_RowCommand"
  DataKeyNames="Op_ID,Serial_Number,Date_Time,Test_Result"
  DataSourceID="dsReport"
  runat="server">
  <Columns>
    <asp:TemplateField HeaderText="Op_ID" HeaderStyle-Width="20%">
      <ItemTemplate>
        <asp:LinkButton ID="lbOp_ID" runat="server" CommandArgument='<%# Container.DataItemIndex %>' CommandName="Op_ID" />
      </ItemTemplate>
    </asp:TemplateField>
    <asp:TemplateField HeaderText="Serial_Number" HeaderStyle-Width="20%">
      <ItemTemplate>
        <asp:LinkButton ID="lbSerial_Number" runat="server" CommandArgument='<%# Container.DataItemIndex %>' CommandName="Serial_Number" />
      </ItemTemplate>
    </asp:TemplateField>
    <asp:BoundField DataField="Date_Time" HeaderText="Date_Time" SortExpression="Date_Time" HeaderStyle-Width="20%" />
    <asp:BoundField DataField="Test_Result" HeaderText="Test_Result" SortExpression="Test_Result" HeaderStyle-Width="40%" />
  </Columns>
</asp:GridView>
对!!上面的内容基本上是一个表定义,但它应该足以启动我的*.aspx页面

当我尝试运行此操作时,会出现以下异常:

System.InvalidOperationException:ObjectDataSource“dsReport”找不到具有以下参数的非泛型方法“GetData”:startDate、startTime、endDate、endTime、action1、filter1、filter2

看来我已经正确拼写和大小写了所有参数,那么我做错了什么?是否使用不正确?

从中,我会说是的,您使用的
TypeName
错误。在MSDN文章中,它指的是承载该方法的类,而不是该方法的返回类型


尝试将
TypeName=“System.Data.DataTable”
更改为
TypeName=“AcpServiceNS.Reporter”
您的TypeName必须显示您的服务类型,如下所示

                <asp:ObjectDataSource ID="odsPoint" runat="server" SortParameterName="sortColumns" EnablePaging="True" 
                    StartRowIndexParameterName="startRecord" MaximumRowsParameterName="maxRecords"
                    SelectCountMethod="GetCategoryPoints" SelectMethod="GetCategoryPointsByFilters" 
                    TypeName="EvaluationAssistt.Service.Services.EvaluationReportingService" 
                    UpdateMethod="GetCategoryPointsByFilters">

注意这里:
TypeName=“EvaluationAssistt.Service.Services.EvaluationReportingService”

您的服务方法在哪里?请在此处写入路径(如strong name;-)

+1。谢谢你的建议。现在我明白了:
ObjectDataSource'dsReport'找不到一个非泛型方法'Reporter.GetData',该方法具有以下参数:startDate、startTime、endDate、endTime、action1、filter1、filter2。
令人困惑。你会自责的;)尝试将该方法设置为公共我尝试将该方法设置为公共,但没有帮助。似乎解决问题的方法(以及我无法解释的原因)是进入设计器并从向导中选择我的项目。我的ObjectDataSource看起来与您前面指出的
TypeName
完全一样,但是通过在设计器中而不是在HTML中执行它,它成功了。所以,你是对的!谢谢,很高兴你知道了。出于好奇,为什么要创建ObjectDataSource?看起来很老派,是吗?我以为我在学习新方法。如果这些东西是旧的,有什么新的?
namespace AcpServiceNS {

  public partial class Reporter : System.Web.UI.Page {

    protected void Page_Load(object sender, EventArgs e) {
    }

    [DataObjectMethod(DataObjectMethodType.Select)]
    protected static DataTable GetData(string startDate, string startTime, string endDate, string endTime,
      string action1, string filter1, string filter2) {
      var table = new DataTable();
      table.Columns.Add("Op_ID", typeof(string));
      table.Columns.Add("Serial_Number", typeof(string));
      table.Columns.Add("Date_Time", typeof(DateTime));
      table.Columns.Add("Test_Result", typeof(string));
      return table;
    }

  }

}
                <asp:ObjectDataSource ID="odsPoint" runat="server" SortParameterName="sortColumns" EnablePaging="True" 
                    StartRowIndexParameterName="startRecord" MaximumRowsParameterName="maxRecords"
                    SelectCountMethod="GetCategoryPoints" SelectMethod="GetCategoryPointsByFilters" 
                    TypeName="EvaluationAssistt.Service.Services.EvaluationReportingService" 
                    UpdateMethod="GetCategoryPointsByFilters">