有人说我写东西比较啰嗦,呵呵,这次简单点。
先建个水晶报表工程

创建完后,先把报表界面关了,新建个dataset

在里面创建个表,mytable

根据需要定义几个字段

然后设计报表,选数据源

报表如下

在窗体里写上代码
1
private
void
Form1_Load(
object
sender, EventArgs e)
2
{
3
//
填充dataset,这里就可以承接任何接口,数据库,数组啥得都行
4
DataSet1 ds1
=
new
DataSet1();
5
ds1.mytable.AddmytableRow(
"
a1
"
,
"
a2
"
,
"
a3
"
,
"
a4
"
,
"
a5
"
,
1
,
1
,
1
,
1
,
1
);
6
ds1.mytable.AddmytableRow(
"
b1
"
,
"
b2
"
,
"
b3
"
,
"
b4
"
,
"
b5
"
,
1
,
1
,
1
,
1
,
1
);
7
ds1.mytable.AddmytableRow(
"
c1
"
,
"
c2
"
,
"
c3
"
,
"
c4
"
,
"
c5
"
,
1
,
1
,
1
,
1
,
1
);
8
ds1.mytable.AddmytableRow(
"
d1
"
,
"
d2
"
,
"
d3
"
,
"
d4
"
,
"
d5
"
,
1
,
1
,
1
,
1
,
1
);
9
ds1.mytable.AddmytableRow(
"
e1
"
,
"
e2
"
,
"
e3
"
,
"
e4
"
,
"
e5
"
,
1
,
1
,
1
,
1
,
1
);
10
11
CrystalReport1 cr1
=
new
CrystalReport1();
12
cr1.SetDataSource (ds1);
13
crystalReportViewer1.ReportSource
=
cr1;
14
}
这就完成了~~
PS1
可以配合 http://www.cnblogs.com/babyt/archive/2008/01/03/1024941.html 实现更灵活的效果
PS220080917: 补充一下一个基础的数据库读取,替换文中的自填充ds段:
SqlConnection conn = new SqlConnection("server=xxx.;Uid=sa;Pwd=;database=test");
conn.Open();
SqlDataAdapter da = new SqlDataAdapter("select a1,b1,c1,d1,e1 from test", conn);
DataSet ds = new DataSet();
da.Fill(ds1, "mytable"); //特别注意此处的表名,需与设计时的表名一致
conn.Close();