string dbDir = Application.StartupPath+"\\try.mdb";
System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection();
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + dbDir + ";";
conn.Open();
System.Data.OleDb.OleDbDataAdapter da = new System.Data.OleDb.OleDbDataAdapter("select * from sDetail where id=1", conn.ConnectionString);
System.Data.DataSet ds = new DataSet();
da.Fill(ds, "sDetail");
//不知道如何加载报表
cr c = new cr();   //自己建立的空报表文件cr.rpt
c.FileName = Application.StartupPath+"cr.rpt";
c.SetDataSource(ds);
this.crystalReportViewer1.ReportSource = c;我想根据用DataAdapter里对dataset进行填充,生成本地的数据表sDetail,再把sDetail里的内容显示在报表上,sDetail里的内容非常简单,就几个字段,可以显示出来就行了。但在.Net 2005里,我在新建项目里建立了一个报表,因为我需要用自己写sql语句查询生成本地数据表再送到报表上显示,不知道报表设计器上应该怎么设置才能达到我的要求?我用自己写的代码老是提示会出错。请指点一下。

解决方案 »

  1.   

    1。确定你有没有查到数据,即ds有没有数据;
    2。确定你报表中的数据表的名字是"sDetail"。
      

  2.   

    我查过了,我的ds中是有数据的。但是我新建的一个报表里面是什么也没有,也就是空的,没有设计,因为我想显示我自己数据表里的内容。我是不是要设计什么?2。确定你报表中的数据表的名字是"sDetail"。
    我报表里如果加入数据表,还可以显示我的本地数据表么?
      

  3.   

    你可以用报表,报表比水晶报表好用灵活
    报表要先要用建立DataSet 数据源,这是一个可视化编程的数据源类,,里面可以放置Table,Table表可以关联到数据库也可以自己建,关联到数据库时将自动生成一个DataAdapter
    最后将Table表的字段填入设计报表,编程时只要调用DataAdapter.fill()方法。
      

  4.   

    csShooter(Sharp Shooter)能说具体点么?
    我没有用dataTableAdapter这类的控件,而是自己写的代码,这样在报表里就找不到数据的内容了,我应该怎么办?
      

  5.   

    靠...用数据集一定要用从表拉出来?项目->添加->新建项->数据集!.产生一个DataSet1.xsd文件,设计好字段,你不就可以在报表中引用了吗!
      

  6.   

    1。
    cr c = new cr();   //自己建立的空报表文件cr.rpt
    ->你不是已经建了报表cr了吗?那么你声明的c里面应该有设计啊你在设计报表的时候,不是有了数据表了吗?数据和报表分离,你既然声明了报表文档(c),你只要把结构相同/名称相同的数据集赋给这个报表文档,就搞定了。
      

  7.   

    ok,搞定了,用了shuiboit(水波)和csShooter(Sharp Shooter)的两种方法都做成了,初到.Net 2005,应用还不是很灵活,让大伙见笑了。结帐拉