快速业务通道

使用ASP.NET 2.0中的ReportViewer控件

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-05-21

介绍

任何数据驱动型的应用程序都有一个普遍的需求,那就是报表。但是,在 ASP.NET 1.x中并没有给我们提供这个非常重要的特性。然而很幸运的是,伴随 着.NET 2.0而来的ReportViewer控件可以满足你对报表的一些基本需求。我将 会在本文中向你演示如何使用这个控件。ReportViewer控件既可以在web程序中 使用,也可以在windows程序中使用。在这里,我将只介绍如何在web程序中使 用它。

报表示例

我们假设要生成一个如下所示的顾客信息列表:

使用ASP.NET 2.0中的ReportViewer控件

上面的报表是一个非常简单的以国家分组的顾客信息列表。报表的数据是从 Northwind数据库的Customers表里获取的。默认情况下,它会显示所有的顾客 信息。但是,你也可以让它显示属于你指定的某个国家的顾客信息。

该报表是使用ReportViewer控件设计的,它可以从强类型的DataSet中或者自 定义的对象集合中获取数据。在实际的程序开发中,我们往往会使用3层架构, 数据的获取经常会是从业务层取得的DataSet或一个泛型集合。在这里,我打算 使用一个泛型集合作为数据源,而不是强类型的DataSet。

创建类库

首先,打开Visual Studio,然后创建一个名为ReportViewerLib的类库项目 。添加一个如下所示的名为Customer的类:

using System;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using System.Collections.Generic;
namespace ReportViewerLib
{
  public class Customer
  {
   public string strCustomerID;
   public string strCompanyName;
   public string strContactName;
   public string strCountry;
   public string CustomerID
   {
    get
    {
     return strCustomerID;
    }
    set
    {
     strCustomerID = value;
    }
   }
   public string CompanyName
   {
    get
    {
     return strCompanyName;
    }
    set
    {
     strCompanyName= value;
    }
   }
   public string ContactName
   {
    get
    {
     return strContactName;
    }
    set
    {
     strContactName= value;
    }
   }
   public string Country
   {
    get
    {
     return strCountry;
    }
    set
    {
     strCountry= value;
    }
   }
   public static List<Customer> GetCustomersForCountry(string country)
   {
    SqlConnection cnn=new SqlConnection(
     ConfigurationManager.ConnectionStrings ["NorthwindConnectionString"].ConnectionString);
    SqlCommand cmd=new SqlCommand();
    cmd.Connection=cnn;
    cmd.CommandText="select
    CustomerID,CompanyName,ContactName,Country
from customers where country=@country";
    SqlParameter p=new SqlParameter
("@country",country);
    cmd.Parameters.Add(p);
    cnn.Open();
    SqlDataReader reader = cmd.ExecuteReader();
    List<Customer> list = new List<Customer>();
    while (reader.Read())
    {
     Customer c = new Customer();
     c.CustomerID = reader.GetString(0);
     c.CompanyName = reader.GetString(1);
     c.ContactName = reader.GetString(2);
     c.Country = reader.GetString(3);
     list.Add(c);
    }
    cnn.Close();
    return list;
   }
   public static List<Customer> GetAll

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号