水晶报表中推模式数据源的问题.

xiaoxinghappy 2007-03-17 09:44:46
上面这是比较简单的水晶报表设置数据源的方法,直接打开数据库,
再填充由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;
...全文
327 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
xiaoxinghappy 2007-06-09
  • 打赏
  • 举报
回复
问题已经自己解决了,原来定义的xsd结构在建立对象实例会自动建立一个新表,这个表在DataSet1中的索引为 0,而我们自己新加的有数据的表,它的索引应该是1

最高只要把 cr.SetDataSource(data.Tables[0]); 改成 cr.SetDataSource(data.Tables[1]);
报表中的数据就正常显示了.


jFresH_MaN 2007-03-19
  • 打赏
  • 举报
回复
那就是说这个代码是客户端执行的,需要连接一个远程的数据库..
那么,你只要修改Connection连接的Data Source的数据库文件的路径为远程路径.
xiaoxinghappy 2007-03-18
  • 打赏
  • 举报
回复
我的不是WEB程序,代码也不是服务器端执行。其实在程序方面可能得到一个DataSet时,只是用一句话 DataSet data=(new objGet()).GetAll()
xiaoxinghappy 2007-03-17
  • 打赏
  • 举报
回复
顶一下
jFresH_MaN 2007-03-17
  • 打赏
  • 举报
回复
代码是服务器端执行的啊,跟客户端是否有数据库连接没有关系的啊.
你的mdb只需要在服务器端有部署就可以.

4,816

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧