水晶报表实现
创建WINFORM程序之后
首先添加一个.xsd文件
.xsd文件是c#中的ado.net数据集文件,数据集用于在断开缓存中存储数据,它的结构类似于关系数据库的接口,它公开表、行和列的分层对象模型。另外,它包含为数据集定义的约束和关系。数据集是容器,因此需要用数据填充它。
xsd的设置可以根据向导一步一步添加数据库
然后添加报表文件 .rpt
根据向导一步步添加
可以根据需要添加多个rpt
下面是项目的文件资源
rpt文件水晶报表的设置,有很多教程
界面上:
默认显示一个报表,然后根据comboBox的选项来切换不同的报表
1
using System;2
using System.Collections.Generic;3
using System.ComponentModel;4
using System.Data;5
using System.Drawing;6
using System.Linq;7
using System.Text;8
using System.Windows.Forms;9
using System.Data.SqlClient;10

11
namespace 水晶报表12


{13
public partial class Form1 : Form14

{15
private string select;16
//password17
static string connectstr = "data source = (local);user id = sa;password = ********;database=students;";18
public Form1()19

{20
InitializeComponent();21

22
DataSet1 myset = new DataSet1();23
SqlConnection sqlcnn = new SqlConnection(connectstr);24

25
string sqlstr = "select * from students";26
SqlDataAdapter myadapter = new SqlDataAdapter(sqlstr, sqlcnn);27

28
//将从数据库的students表中选出的所有数据放置在myset的名为students表中29
myadapter.Fill(myset, "students");30

31
sqlstr = "select * from Department";32
SqlDataAdapter myadapter1 = new SqlDataAdapter(sqlstr, sqlcnn);33
myadapter1.Fill(myset, "Department");34

35
//设置程序运行时默认显示的报表36
MyCrystal1 myrpt = new MyCrystal1();37
//设置数据源38
myrpt.SetDataSource(myset);39
//显示的报表40
crystalReportViewer1.ReportSource = myrpt;41
}42

43
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)44

{45
select = comboBox1.SelectedText.ToString();46

47
DataSet1 myset = new DataSet1();48
SqlConnection sqlcnn = new SqlConnection(connectstr);49

50
string sqlstr = "select * from students";51
SqlDataAdapter myadapter = new SqlDataAdapter(sqlstr, sqlcnn);52
//将从数据库的students表中选出的所有数据放置在myset的名为students表中53
myadapter.Fill(myset, "students");54

55
sqlstr = "select * from Department";56
SqlDataAdapter myadapter1 = new SqlDataAdapter(sqlstr, sqlcnn);57
//将从数据库的Department表中选出的所有数据放置在myset的名为Department表中58
myadapter1.Fill(myset, "Department");59

60
//根据选择到的不同字符串对报表的数据进行绑定61
switch (Int32.Parse(comboBox1.SelectedIndex.ToString()))62

{63
//选择了学生基本信息表 64
case 0:65

{66
MyCrystal1 myrpt = new MyCrystal1();67
myrpt.SetDataSource(myset);68
crystalReportViewer1.ReportSource = myrpt;69
break;70
}71
//选择了学院基本信息表 72
case 1:73

{74
MyCrystal2 myrpt = new MyCrystal2();75
myrpt.SetDataSource(myset);76
crystalReportViewer1.ReportSource = myrpt;77
break;78
}79
}80
}81
}82
}83

浙公网安备 33010602011771号