您的位置:首页 > 数据库

c# 基础之水晶报表设计(手动连接到数据库)

2010-04-03 22:18 806 查看
          这里先讲一下关于报表的一些基本操作,在后面还有其他介绍。

          我们知道在数据库项目中,报表经常会使用的。vs08为我们提供了两类报表模板,一类是名为“报表”的报表设计模板,扩展名为“.rdlc”,简称“微软报表”;另一类名为“Crystal报表”的报表设计模板,扩展名为“.rpt”,简称“水晶报表”。 这里要讲的是最常使用的水晶报表。

          报表的数据源连接方式也大体分种方式:直接连接到数据库,或者使用ADO.NET数据集作为报表的数据源。因为,直接连接到数据库涉及到内容很多操作也颇为麻烦,这里介绍下第二种方式:使用ADO.NET数据集作为数据源。

          下面以图文讲解,有疑问可以q我:(为了方便举例,这里使用Access作为数据源,在最后会提供该实例的下载地址

          (先说明,这里讲的是另一种通过ADO.NET的方式链接到数据库,或许与别的方法不同。如果觉得这方法麻烦,可以采用把数据库导入vs08,再处理,这里就不讲了,方法类似。我个人比较喜欢这方法,灵活性好和移植性强)

(1)首先创建一个DATASET的数据集:右击解决方案---》添加----》新建项——》数据---》选择“数据集”文件,默认命名(如下)

 

         


(2)打开新创建的数据集文件,右击添加一个表格,表名和字段命名具体如下: 

 

 


(3)创建一个水晶报表文件:右击解决方案---》添加----》新建项——》Reporting---》选择“Crystal报表”文件,默认命名(如下)


(4)打开报表文件,在空白处右击,选择 数据库---》数据专家----》把刚刚创建的数据表添加进右边框子(如下)



(5)接着,你会在右边的解决方案中看到增加如下内容:



(6)现在,你要做的是把这些数据库字段拖到左边空白处,布局如下:(记住布局完毕后,按F6,生成相应组件)



(7)接下来转到WinForm那里,给Form添加一个CrystalReportViewer控件和刚刚生成数据集控件和报表控件,如下(名字有些不一样,这是我以前做的,这里没关系)





(8)布局如下:



(9)最后是写代码了,方法类似于绑定于DataGRidView:具体代码如下(有注释,有些参数命名不同,请注意)

]额外要添加两个命名空间:

using System.Data.OleDb;    //用于Access数据库
using CrystalDecisions.CrystalReports.Engine;   //用于报表

public partial class 学生信息 : Form
{
public 学生信息()
{
InitializeComponent();
this.ClientSize = new Size(600, 500);
this.StartPosition = FormStartPosition.CenterScreen;
}

private DataSet GetDataSet(string strSql, string name)
{
OleDbConnection oledbCon = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Student.mdb");//创建连接,参数为数据库连接字段
DataSet ds = new DataSet();
try
{

oledbCon.Open();
OleDbDataAdapter oledbDA = new OleDbDataAdapter(strSql, oledbCon);  //执行sql命令
oledbDA.Fill(ds, name); //填充dataset
}
catch (Exception ex)
{
MessageBox.Show("连接失败:" + ex.Message, "错误信息", MessageBoxButtons.OK, MessageBoxIcon.Error);
ds = null;
}
finally
{
oledbCon.Close();
}
return ds;

}

private void InitialReport()
{
DataSet ds= new DataSet();
//获取数据库内容,放入dataset
ds = GetDataSet("select * from student", "studentInfo");
//创建报表实例
StudentReport studentreport1 = new StudentReport();
//设置报表数据源
studentreport1.SetDataSource(ds);
//创建reportdocument实例
ReportDocument document = (ReportDocument)studentreport1;
//设置标题
document.SummaryInfo.ReportTitle = "学生基本情况";
//把数据绑定在报表控件上
this.crystalReportViewer1.ReportSource = document;
//设置缩放比例为85%
crystalReportViewer1.Zoom(85);
}

private void 学生信息_Load(object sender, EventArgs e)
{
InitialReport();    //显示报表内容
}
}


 

(10)最终结果如下:



该实例下载地址:

http://download.csdn.net/source/2200961

 

希望对大家有用!在后面,我会继续介绍报表的一些其他操作,例如绘制表格,设置分组依据,逐条信息单页显示等。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息