【问题标题】:Problem with Object Data Source in ASP.NET (GetData method)ASP.NET 中的对象数据源问题(GetData 方法)
【发布时间】:2011-08-18 20:42:53
【问题描述】:

我想在 ASP.NET 中创建一个报表查看器,向用户展示他们的数据。 所有用户的数据都位于同一个表中。

现在我创建了 DBDataSet,在 TableAdapter 中有这个方法

GetData(@idNumber, @userNumber)

在屏幕后面的代码中,我想显示我编写的报告查看器:

FlightsDBDataSetTableAdapters.ReservationsTableAdapter ReservationsTableAdapter;
ReservationsTableAdapter = new FlightsDBDataSetTableAdapters.ReservationsTableAdapter();
FlightsDBDataSet.ReservationsDataTable newReservationTable;
newReservationTable = ReservationsTableAdapter.GetData(userId, userName);
ObjectDataSource1.SelectParameters.Add("userName", userName);
ObjectDataSource1.SelectParameters.Add("idNumber", userId);

当我运行它时,我得到下一个错误

报告处理过程中发生错误。对象数据源 “ObjectDataSource1”找不到非泛型方法 'GetData(idNumber, userName)' 有参数:userName, idNumber。

所以,我的问题是我需要在哪里编写 GetData 方法以及如何使用正确的数据生成报告。

非常感谢。

【问题讨论】:

  • 你能展示你的 ObjectDataSource1 的完整代码吗?
  • 您可以尝试通过设计器本身添加数据集方法。向导应该在这里为您提供帮助。如果不能,请发布 objectdatasource 的标记...
  • 永远不要在html页面中暴露数据源和参数...

标签: asp.net visual-studio-2010 objectdatasource


【解决方案1】:

试试这个。

1.创建一个方法,如果存储过程中没有传入参数,则返回db null

public static object GetDataValue(object o)
{
    if (o == null || String.Empty.Equals(o))
        return DBNull.Value;
    else
        return o;
}

2.创建一个方法,该方法将调用存储过程并填充数据集。

public DataSet GetspTest(string userName, string userId) {

try
{
    DataSet oDS = new DataSet();
    SqlParameter[] oParam = new SqlParameter[2];


    oParam[0] = new SqlParameter("@userName", GetDataValue(userName));
    oParam[1] = new SqlParameter("@idNumber", GetDataValue(userId));

    oDS = SqlHelper.ExecuteDataset(DataConnectionString, CommandType.StoredProcedure, "spTest", oParam);
    return oDS;
}
catch (Exception e)
{
    ErrorMessage = e.Message;
    return null;
}

}

  1. 现在您添加数据集让我们说“DataSet1.xsd” 拖放 TableAdapter,它会询问您以下详细信息

    3.1 连接字符串(选择现有的连接字符串或创建新的连接字符串)

    3.2 选择命令类型(现在选择现有的存储过程,指定您之前创建的存储过程以在报告中显示详细信息

    3.3 选择生成方法(同时勾选填充数据表和返回数据表

    3.4 点击下一步并提交(现在你的数据集真的要在报告中使用了)

    1. 创建报表并将此 DataSet1 用作数据源。

【讨论】:

    猜你喜欢
    • 2010-09-25
    • 1970-01-01
    • 1970-01-01
    • 2011-04-27
    • 1970-01-01
    • 2013-10-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多