水晶报表学习日记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             //将当前报表绑定到窗体上的报表浏览器

 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             //绑定数据

28             crystalReportViewer1.DataBind(); 


 

posted @ 2011-02-27 17:22  macaco  阅读(917)  评论(0)    收藏  举报