日期:2014-05-20  浏览次数:20756 次

水晶报表中推模式数据源的问题.
上面这是比较简单的水晶报表设置数据源的方法,直接打开数据库,
再填充由xsd定义好的   DataSet1,然后设置报表数据源。
                        OleDbConnection   oleConn   =   new   OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=xtreme.mdb ");
                        OleDbDataAdapter   oleAda   =   new   OleDbDataAdapter( "Select   *   From   采购 ",   oleConn);
                        DataSet1   data   =   new   DataSet1();
                        oleConn.Open();
                        oleAda.Fill(data,   "采购 ");
                        CrystalReport1   cr   =   new   CrystalReport1();
                        cr.SetDataSource(data.Tables[0]);
                        crystalReportViewer1.ReportSource   =   cr;


现在的问题是我的程序是三层结构的,在客户端是没有   Connection   的,
也就是不能用   DataAdapter   的   Fill   填充,
这个时候不知道要怎么设置由   xsd   定义好的   DataSet1??????

下面是我用来调试的尝试方法之一,但是这个方法是不行的,希望大家给于指点,谢谢

                        OleDbConnection   oleConn   =   new   OleDbConnection( "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source=xtreme.mdb ");
                        OleDbDataAdapter   oleAda   =   new   OleDbDataAdapter( "Select   *   From   采购 ",   oleConn);
                        DataSet1   data   =   new   DataSet1();
                        DataSet   d   =   new   DataSet();
                        DataTable   t;
                        oleConn.Open();
                        oleAda.Fill(d,   "采购 ");
                        t   =   d.Tables[0].Clone();
                        data.Tables.Add(t);
                        CrystalReport1   cr   =   new   CrystalReport1();
                        cr.SetDataSource(data.Tables[0]);
                        crystalReportViewer1.ReportSource   =   cr;


------解决方案--------------------
代码是服务器端执行的啊,跟客户端是否有数据库连接没有关系的啊.
你的mdb只需要在服务器端有部署就可以.