C#使用水晶报表详细教程
需积分: 9 15 浏览量
更新于2024-09-18
1
收藏 7KB TXT 举报
“C#水晶报表操作实例 - 使用C#在Visual Studio 2005中进行水晶报表的详细实例,包括PULL和PUSH两种数据填充模式。”
在C#编程中,水晶报表(Crystal Reports)是一种强大的报表设计工具,常用于生成复杂的业务报告。这个实例主要介绍了如何在VS2005环境下利用C#与水晶报表进行交互。水晶报表支持两种数据填充模式:PULL(拉取)和PUSH(推送)模式。
1. PULL(拉取)模式:
在这种模式下,报表引擎负责从数据源获取数据。开发者需要在SQL语句中使用参数化查询,例如`Select T1, T2, T3 FROM T Where T1 = '{?parm}'`,这里的`{?parm}`是一个参数占位符,通过`SetParameterValue`方法设置参数值。以下是一个简单的示例代码:
```csharp
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
protected void Button_pull_Click(object sender, EventArgs e)
{
// 加载报表文件
CrystalReportSource1.ReportDocument.Load(Server.MapPath("CrystalReport.rpt"));
// 设置数据库登录信息,包括用户名、密码、服务器名和数据库名
CrystalReportSource1.ReportDocument.SetDatabaseLogon("sa", "123456", @"SYWZSWL\SQLEXPRESS", "Test");
// 设置参数值
CrystalReportSource1.ReportDocument.SetParameterValue("Title", "һԱ");
}
```
2. PUSH(推送)模式:
与PULL模式不同,PUSH模式是将数据集(DataSet)直接推送到报表,而不是由报表引擎执行SQL查询。这种方式适用于已经处理过数据或需要在代码中控制数据流的情况。以下是一个简单的示例:
```csharp
using System.Data.SqlClient;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
protected void Button_push_Click(object sender, EventArgs e)
{
// 创建数据库连接
SqlConnection conn = new SqlConnection("Data Source=SYWZSWL\SQLEXPRESS;Initial Catalog=Test;User ID=sa;Password=123456");
conn.Open();
// 执行SQL查询并填充数据集
SqlCommand cmd = new SqlCommand("SELECT * FROM Table WHERE Column = @Parm", conn);
cmd.Parameters.AddWithValue("@Parm", "Value");
SqlDataAdapter adapter = new SqlDataAdapter(cmd);
DataSet dataSet = new DataSet();
adapter.Fill(dataSet);
// 关闭数据库连接
conn.Close();
// 加载报表并设置数据源
ReportDocument report = new ReportDocument();
report.Load(Server.MapPath("CrystalReport.rpt"));
report.SetDataSource(dataSet);
// 显示报表
CrystalReportViewer1.ReportSource = report;
}
```
在Web应用中,通常会使用`CrystalReportSource`和`CrystalReportViewer`控件。`CrystalReportSource`用于设置报表的来源,而`CrystalReportViewer`则用于在网页上显示报表。在FORM应用中,可以直接创建`CrystalReport`对象并设置其`ReportSource`属性来显示报表。
这个实例提供了C#操作水晶报表的基础知识,包括如何加载报表文件、设置数据库登录信息、参数化查询以及在PULL和PUSH模式下填充数据。这有助于开发者理解和实现自定义的报表功能。
2009-11-26 上传
2010-04-04 上传
2009-03-07 上传
2009-03-08 上传
2009-05-01 上传
2008-11-24 上传
点击了解资源详情
2021-06-15 上传
勿勿
- 粉丝: 209
- 资源: 15
最新资源
- 构建基于Django和Stripe的SaaS应用教程
- Symfony2框架打造的RESTful问答系统icare-server
- 蓝桥杯Python试题解析与答案题库
- Go语言实现NWA到WAV文件格式转换工具
- 基于Django的医患管理系统应用
- Jenkins工作流插件开发指南:支持Workflow Python模块
- Java红酒网站项目源码解析与系统开源介绍
- Underworld Exporter资产定义文件详解
- Java版Crash Bandicoot资源库:逆向工程与源码分享
- Spring Boot Starter 自动IP计数功能实现指南
- 我的世界牛顿物理学模组深入解析
- STM32单片机工程创建详解与模板应用
- GDG堪萨斯城代码实验室:离子与火力基地示例应用
- Android Capstone项目:实现Potlatch服务器与OAuth2.0认证
- Cbit类:简化计算封装与异步任务处理
- Java8兼容的FullContact API Java客户端库介绍