没用什么DATAGRID显示数据!就是想把数据库中若干个表中的某些字段在报表
中显示出来!

解决方案 »

  1.   

    源码:在 Windows 窗体类定义的开始位置,键入: 
    Public CrystalReport1 oRpt = new CrystalReport1(); 
    在 Form1() 中的 InitializeComponent() 调用的后面,键入: 
    // 设置连接信息
    OleDbConnection oleConn = new 
    OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Program Files\\Microsoft Visual Studio .NET\\Crystal Reports\\Samples\\Database\\chs\\xtreme.mdb");
    OleDbDataAdapter dataAdapter = new OleDbDataAdapter ("SELECT * FROM Customer", oleConn);//这里查询是用的一个表!我若用到的是两个表的话
    就会出错!
    DataSet dataSet = new DataSet ();// 连接到数据库、从数据库中获取数据然后断开数据库连接
    dataAdapter.Fill (dataSet, "Customer");// 使用“报表引擎”对象模型将填充的数据集
    //传递给报表
    oRpt.SetDataSource (dataSet);// 将带有数据的报表对象绑定到 Windows 窗体查看器
    crystalreportviewer1.ReportSource = oRpt;注意:FillDataSet 方法可连接到指定的数据库,提取数据,然后断开数据库连接。如果您希望将数据库中的多个表添加到报表中,请使用 SQL JOIN 语句将这些表联接在一起;然后在 FillDataSet 方法中指定一个结果表。就是这些!下边的那个注意项不明白!
      

  2.   

    crystalreport不支持多表查询,根据查询需要创建一个视图不就行了吗。
      

  3.   

    很简单将SQL语句改写一下即可。将多表查询改成带子查询的查询
    select table1.name,table2.sex from table1,table2
    改成:
    1.select a.name,a.sex from (select table1.name,table2.sex from table1,table2) a
    2.或使用UNION将多表连接成一个查询表即可。
    我测试过行的通。
      

  4.   

    怎么回事,发了好几遍都失败。
    修改你的SQL语句即可。将多表查询变成带子查询的查询。

    select table1.name,table2.sex from table1,table2
    改成:
    1.select a.name,a.sex from (select table1.name,table2.sex from table1,table2) a
    2.使用UNION查询
    我测试过可以通过.