有两个form1和form2,在form1中进行数据查询得到dataset,然后单击form1上的button1弹出form2,form2上是水晶报表,需要显示form1的dataset中的数据。
现在我定义了一个public static dataset ds;
并在form1中成功接收数据并能在datagridview中显示,然后绑定到form2的数据源上后,数据就不显示了,但在form2中添加datagridview,能看到数据,为什么水晶报表中显示不出来?form1中代码:
ds = MyDataClass.getDataSet(str + q, "tb_jkdlssj");//ds获得查询结果
dataGridView1.DataSource = ModuleClass.MyModule.ds.Tables[0];//datagridview1接收数据,并能正常显示form2中代码:
ReportDocument myreport = new ReportDocument();
myreport.Load(@"C:\Documents and Settings\Administrator\桌面\mhjg\mhjg\ShuJu\C_lssjcx.rpt");
myreport.SetDataSource(ds.Tables[0]);
crystalReportViewer1.ReportSource = myreport;另外问一下,myreport.Load(@"C:\Documents and Settings\Administrator\桌面\mhjg\mhjg\ShuJu\C_lssjcx.rpt");
中路径怎么设简单一点?谢谢啦!!!!!

解决方案 »

  1.   

    你将rpt文件建立在你的项目目录下,比如你在项目文件夹下建立一个文件夹叫Report,然后你的C_lssjcx.rpt就放在这个文件夹下,然后你路径这样写即可:myreport.Load(Server.MapPath("~/Report/C_lssjcx.rpt"));
      

  2.   

    我知道我的错在哪了,是出在sql语句上了,例如我的sql语句为select czsj as 操作时间 from tb_jkdlssj,这句话到了水晶报表中就显示不出查询结果来了,要是改成 select czsj from tb_jkdlssj就可以正常显示,可是我还不能不用as,这应该怎么办呢?
      

  3.   

    1楼,你说的方法不行啊,总是报错server没有定义
      

  4.   

    没注意,刚写的那个是WebForm的,你的是WinForm的,那就这样试试myreport.Load("~/Report/C_lssjcx.rpt");
      

  5.   

    select czsj as czsj  from tb_jkdlssj试试
      

  6.   

    我是在datagridview里需要用到别名,水晶报表里不用,现在需要用一个dataset所以有冲突,我现在的解决方法是用一个查询条件生成两个dataset,一个带别名的,一个不带。但是我觉得这么做效率太低了,有没有别的什么好办法?