水晶报表学习日记1------绑定后不显示数据
接触水晶报表已经两天了!虽然这两天并没有学到太多东西,总归是有了一点使用经验了。
记得刚开始使用的时候第一次使用的Pull模式感觉上还算轻松,没有费多少功夫就把数据展现出来了。但这样远远是不能满足我的,随即开始研究Push模式。毕竟我们以后用的最多的可能就会是Push模式。第一次使用Push总归是有点困难不过还好这点困难并不能让我放弃!遇到的错误首先是把Pull与Push搞混了,本来以为Push的数据集中的表是必须从数据库中生成的(其实并不需要)。其次就是在数据绑定的时候忘记把DataSet中的表命名,后来虽然知道需要命名了 但是并不知道还必须要和数据集中的表名要一样 又让我费了好长时间才搞明白!下面是完整的绑定代码:
Forms下的绑定方法:
1 //设置命令语句
2 string strCmd = "SELECT [orderid],[productid] FROM [TSQLFundamentals2008].[Sales].[OrderDetails]";
3 //设置数据连接
4 string strCon = @"server=MACACO-ONLINE\SQLEXPRESS;uid=sa;pwd=macac0online;database=TSQLFundamentals2008";
5 //声名临时数据转储对象
6 DataSet ds = new DataSet();
7
8 //使用SqlServer的数据源适配器填充临时数据转储对象
9 using (SqlDataAdapter sqlAda = new SqlDataAdapter(strCmd, strCon))
10 {
11 sqlAda.Fill(ds,"ProductInfo");
12 }
13 //创建所要使用的报表对象
14 PushProductInfoCrystal proInfo = new PushProductInfoCrystal();
15
16
17 //设置当前报表所在的位置 可以不用设置 但是如果想要动态更换就要设置
18 proInfo.FileName = Application.StartupPath + @"\..\..\CrystalFile\PushProductInfoCrystal.rpt";
19
20 //设置数据源
21 proInfo.SetDataSource(ds.Tables["ProductInfo"]);//注意指定表名 而且要与数据集中的表名一致
22
23 //将当前报表绑定到窗体上的报表浏览器
2 string strCmd = "SELECT [orderid],[productid] FROM [TSQLFundamentals2008].[Sales].[OrderDetails]";
3 //设置数据连接
4 string strCon = @"server=MACACO-ONLINE\SQLEXPRESS;uid=sa;pwd=macac0online;database=TSQLFundamentals2008";
5 //声名临时数据转储对象
6 DataSet ds = new DataSet();
7
8 //使用SqlServer的数据源适配器填充临时数据转储对象
9 using (SqlDataAdapter sqlAda = new SqlDataAdapter(strCmd, strCon))
10 {
11 sqlAda.Fill(ds,"ProductInfo");
12 }
13 //创建所要使用的报表对象
14 PushProductInfoCrystal proInfo = new PushProductInfoCrystal();
15
16
17 //设置当前报表所在的位置 可以不用设置 但是如果想要动态更换就要设置
18 proInfo.FileName = Application.StartupPath + @"\..\..\CrystalFile\PushProductInfoCrystal.rpt";
19
20 //设置数据源
21 proInfo.SetDataSource(ds.Tables["ProductInfo"]);//注意指定表名 而且要与数据集中的表名一致
22
23 //将当前报表绑定到窗体上的报表浏览器
24 crystalReportViewer1.ReportSource = proInfo;
WEB下的绑定方法:
1 //设置命令语句
2 string strCmd = "SELECT [orderid],[productid] FROM [TSQLFundamentals2008].[Sales].[OrderDetails]";
3 //设置数据连接
4 string strCon = @"server=MACACO-ONLINE\SQLEXPRESS;uid=sa;pwd=macac0online;database=TSQLFundamentals2008";
5 //声名临时数据转储对象
6 DataSet ds = new DataSet();
7
8 //使用SqlServer的数据源适配器填充临时数据转储对象
9 using (SqlDataAdapter sqlAda = new SqlDataAdapter(strCmd, strCon))
10 {
11 sqlAda.Fill(ds, "ProductInfo");
12 }
13 //创建所要使用的报表对象
14 PushProductInfoCrystal proInfo = new PushProductInfoCrystal();
15
16
17 //设置当前报表所在的位置 可以不用设置 但是如果想要动态更换就要设置
18 proInfo.ReportDocument.FileName = Server.MapPath(@"File\PushProductInfoCrystal.rpt");
19
20 //设置数据源
21 proInfo.ReportDocument.SetDataSource(ds.Tables["ProductInfo"]);//注意指定表名 而且要与数据集中的表名一致
22 //绑定数据
23 proInfo.DataBind();
24
25 //将当前报表绑定到窗体上的报表浏览器
26 crystalReportViewer1.ReportSource = proInfo;
27 //绑定数据
2 string strCmd = "SELECT [orderid],[productid] FROM [TSQLFundamentals2008].[Sales].[OrderDetails]";
3 //设置数据连接
4 string strCon = @"server=MACACO-ONLINE\SQLEXPRESS;uid=sa;pwd=macac0online;database=TSQLFundamentals2008";
5 //声名临时数据转储对象
6 DataSet ds = new DataSet();
7
8 //使用SqlServer的数据源适配器填充临时数据转储对象
9 using (SqlDataAdapter sqlAda = new SqlDataAdapter(strCmd, strCon))
10 {
11 sqlAda.Fill(ds, "ProductInfo");
12 }
13 //创建所要使用的报表对象
14 PushProductInfoCrystal proInfo = new PushProductInfoCrystal();
15
16
17 //设置当前报表所在的位置 可以不用设置 但是如果想要动态更换就要设置
18 proInfo.ReportDocument.FileName = Server.MapPath(@"File\PushProductInfoCrystal.rpt");
19
20 //设置数据源
21 proInfo.ReportDocument.SetDataSource(ds.Tables["ProductInfo"]);//注意指定表名 而且要与数据集中的表名一致
22 //绑定数据
23 proInfo.DataBind();
24
25 //将当前报表绑定到窗体上的报表浏览器
26 crystalReportViewer1.ReportSource = proInfo;
27 //绑定数据
28 crystalReportViewer1.DataBind();
浙公网安备 33010602011771号