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

C#开发 专栏收录该内容
3 篇文章 0 订阅

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
    点赞
  • 0
    评论
  • 1
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

DeathStart

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值