水晶报表就是数据预览不出来,又不报错,帮我看看是哪里的问题?1.在项目中添加一个DataSet1.xsd,
2.添加一个CrystalReport1.rpt,把字段拖进来
3.从工具栏中拖crystalReportViewer到Form1中.
4.我添加了代码如图。
5.预览出来总是空白的,如图,搞了好多次都一样,晕了。

解决方案 »

  1.   

    file:///C:/Documents%20and%20Settings/Administrator/桌面/aaa.JPG
    ......
    把代码帖一下看看
      

  2.   

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Data.SqlClient;namespace 水晶报表看数据集变化
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }        private void Form1_Load(object sender, EventArgs e)
            {
                string con = "server=192.168.1.234;database=pubs;uid=sa;pwd=sa";            string sql = "select * from sales";            DataSet ds=new DataSet();
                System.Data.SqlClient.SqlDataAdapter sda = new SqlDataAdapter(sql, con);
                sda.Fill(ds);            CrystalReport1 cry=new CrystalReport1();
                cry.SetDataSource(ds);            this.crystalReportViewer1.ReportSource = cry;        }
        }
    }
      

  3.   

    把你的 DataSet1.xsd 的xml贴出来
      

  4.   

    这样试试: ReportDocument 先加载rpt文件然后再设置ReportDocument .SetDataSource(ds);
    最后this.crystalReportViewer1.ReportSource = ReportDocument ;
      

  5.   

    是不是和 select * from sales 能对应上啊
      

  6.   

    数据集是我直接从服务器上拖过来的,绝对没问题。我在想是不是哪里漏了什么操作,还是怎么了,晕死直接在dataset预览数据集都没问题
      

  7.   


      string con = "server=192.168.1.234;database=pubs;uid=sa;pwd=sa";            string sql = "select * from sales";            DataSet ds=new DataSet();
                System.Data.SqlClient.SqlDataAdapter sda = new SqlDataAdapter(sql, con);
                sda.Fill(ds);            //CrystalReport1 cry=new CrystalReport1();
                //cry.SetDataSource(ds);            //this.crystalReportViewer1.ReportSource = cry;
                string path = @"D:\VSS\水晶报表看数据集变化\水晶报表看数据集变化\";
                CrystalDecisions.CrystalReports.Engine.ReportDocument rd = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
                rd.Load(path + "CrystalReport1.rpt");
                rd.SetDataSource(ds);            this.crystalReportViewer1.ReportSource = rd;
    一摸一样,为什么会这样?
      

  8.   

    sda.Fill(ds);这里需这样
    sda.Fill(ds,"表的名称");其中“表的名称”就是你的dataset1里的datatable的名称,名称要一致
      

  9.   

    确保在画报表时用的表名和你现在数据源中的表名一致,如楼上所说,不然你就直接传一个Datatable过去
      

  10.   


    OK了,谢谢。
    给dataset赋值后,
    限定下他的表名就可以了