解决VS2005水晶报表多表关联去除数据库登录框

VS2005自带水晶报表,新建CrystalReport1.rpt,然后跟着向导,选择报表样式,建立数据库连接,选择要显示的段,然后完成就好了,然后绑定crystalReportViewer等等,这些就不细说了,
单个表报表没什么问题,但是开发时怎么可能都是单个表吧,这概率也太小了,还是数据库设计的不合理,
但多表关联进来,显示报表时会提示一个数据库登录,

解决问题很简单,

选看下面的代码 ,
DataSet ds=new DataSet();
SqlDataAdapter da1=new SqlDataAdapter("select * from table1",myconn);
SqlDataAdapter da2=new SqlDataAdapter("select * from table2",myconn);
da1.Fill(ds,"table1");
da2.Fill(ds,"table2");
CrystalReport1 rpt=new CrystalReport1();
rpt.SetDataSource(ds);
这样,把在报表向导中的两个表在程序中都添加进来,就不会出现数据库登录的窗口了,
但是这样也许与你要查询的结果不一样,会出现数据交叉,

再看下面的,

TableLogOnInfo LInfo = new TableLogOnInfo();
LInfo.ConnectionInfo.ServerName = Application.StartupPath + "eastmap.esp";//
LInfo.ConnectionInfo.DatabaseName = "eastmap";
LInfo.ConnectionInfo.UserID = "";
LInfo.ConnectionInfo.Password = "user1";

for (int i = 0; i < cr.Database.Tables.Count; i++)
{
      cr.Database.Tables[i].ApplyLogOnInfo(LInfo);
}
这一段,重新验证数据表,这样一来,也不会出现数据库提示窗口,

比上面的方法要好,把代码贴出来,大家做个参考,思路多多,,有更好的方法,千万不要吝啬哦,,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值