先建了一个Mydataset 
Mydataset my_DS = new Mydataset ();
SqlConnection my_sqlcnn = new SqlConnection( "连接字串" );
my_sqlcnn.Open();
string StrSQL = "查询1";
SqlDataAdapter my_DA = new SqlDataAdapter( StrSQL,my_sqlcnn );
my_DA.Fill( my_DS, "查询1" );
StrSQL = "查询2“
SqlDataAdapter my_DA1 = new SqlDataAdapter(StrSQL,my_sqlcnn);
my_DA.Fill(my_DS,"查询2");
StrSQL = "查询3";
SqlDataAdapter my_DA2 = new SqlDataAdapter( StrSQL,my_sqlcnn );
my_DA.Fill( my_DS, "查询3" );
CrystalReportDataClientPart my_Report = new CrystalReportDataClientPart();
my_Report.SetDataSource(my_DS);
crystalReportViewer1.ReportSource = my_Report;为什么不显示数据和图表!!!!!

解决方案 »

  1.   

    crystalReportViewer1.ReportSource = my_Report;
    crystalReportViewer1.RefreshReport();
    crystalReportViewer1.Show();
      

  2.   

    my_Report.SetDataSource(my_DS.Tables[0]);
    直接用表绑定呢?
      

  3.   

    我想好多朋友和我一样在学习用crystalReportViewer水晶报表时都有或多或少的问题,不过我现在只想和朋友们一起分想我的错误和解决方法,有太多地方我也不知道为什么!不过我说出来只要能帮助到你一点点就是我的最大快乐。(虽然我过几开就不再做开发了!说真的我喜欢做这个。不要问我为什么?有点伤感!)
    1)在学习中第一个问题就如何使用它?
      如果你是用“推push”(比“拉pull”要实用):
    先打开一个“新建项目”找到“数据集”,把你想要显示的表添加过来;
    再打开一个“新建项目”找到“CrystalReport1”这就是报表(这里面的数据“链接”实分重要,如果你是多表的话,你可能要多次调整),在“样式”中的标题就是你报表显示用的标题。(也可以在后来加入文本做为标题);crystalReportViewer1这个是从工具箱中拖出来的,是用来显示报表的。(如果还有不明白的上网去查查看有太多说明。)
    2)为什么不显示数据或图表?(这个问题我费了一天)
    有几个可能和方法:先加入我的代码(测过无勿)
    MyDataset my_DS = new MyDataset();    //这是我的数据集
    SqlConnection my_sqlcnn = new SqlConnection( my_SQLConnStr );
                         //my_SQLConnStr 我的连接字串
    my_sqlcnn.Open();            //一定要打开StrSQL = "SELECT *  from SM_PartInfo";
    SqlDataAdapter my_DA = new SqlDataAdapter(StrSQL,my_sqlcnn);
         //将从数据库的students表中选出的所有数据放置在my_DS的名为SM_PartInfo表中
    my_DA.Fill(my_DS,"SM_PartInfo");
         //用来测试有没有数据的,如果没有数据可能就是你的数据链接有错哦!
    mySum = my_DS.Tables["SM_PartInfo"].Rows.Count ;StrSQL = "SELECT * from CI_ClientArchives ";
    SqlDataAdapter my_DA1 = new SqlDataAdapter(StrSQL,my_sqlcnn);
      //将从数据库的Department表中选出的所有数据放置在my_DS的名为CI_ClientArchives表中
    my_DA1.Fill(my_DS,"CI_ClientArchives");mySum = my_DS.Tables["CI_ClientArchives"].Rows.Count ;//用来测试有没有数据的StrSQL = "SELECT * from CI_AM_Archives";
    SqlDataAdapter my_DA2 = new SqlDataAdapter(StrSQL,my_sqlcnn);
          //将从数据库的students表中选出的所有数据放置在my_DS的名为SM_PartInfo表中
    my_DA2.Fill(my_DS ,"CI_AM_Archives" );mySum = my_DS.Tables["CI_AM_Archives"].Rows.Count ;//用来测试有没有数据的

           //设置程序运行时默认显示的报表,加在窗体构造函数中
    MyCrystalReport my_Report = new MyCrystalReport();
           //设置将水晶报表的数据源
    my_Report.SetDataSource(my_DS);
      //如果没有数据就加上这句试试 my_Report.Refresh();
          //设置报表查看器中显示的报表
    crystalReportViewer1.ReportSource = my_Report;
      //还是没有数据加上这句你再试试 crystalReportViewer1.RefreshReport();如果你加入了这些还是没有数据,你可以查看一下你的数据(链接是否有错,要多试几次)
    代码有详释,你应该可以看懂了吧!(以上只是对初学者有帮助,请高手莫笑)
      

  4.   

    1.你确认DS里面查询得出的各个表的结构和你报表设计时绑定的结构一致么?
    2.然后再确定DS查询得到的结果是否真的有数据
    3.报表设计中你有没有将数据字段拖到界面上,而不是用TextObject如果3个都没有问题,那么我实在是想不出还有什么地方出错了
      

  5.   

    在SQL上检查你的查询结果有没有数据,我也试过这个问题。已经解决了
      

  6.   

    my_Report.SetDataSource(my_DS); 
    my_Report.Refresh();