VS VB 中使用水晶报表连接SQL Server数据库教程
该资源是一个关于在Visual Studio (VS) 中使用VB.NET语言与水晶报表(Crystal Reports)集成,创建数据库连接的教程。主要内容涉及如何在报表设计阶段设置数据源,以及在运行时动态配置数据库连接信息。 在VS中使用VB.NET与水晶报表进行数据库连接的关键步骤如下: 1. 添加报表文件:在解决方案资源管理器中,选择需要存放报表的位置,通过“添加新项”功能添加一个名为`cr1.rpt`的Crystal Report文件。 2. 设置数据源:在打开的“报表专家”中,选择数据源类型为OLE DB,然后根据实际使用的数据库(例如SQL Server 2000)选择相应的数据库驱动。 接下来,代码部分展示了如何在程序运行时动态设置报表的数据库连接信息: ```vbnet ' 引入必要的命名空间 Imports CrystalDecisions.Shared ' 表用于TableLogOnInfo Imports CrystalDecisions.CrystalReports.Engine ' 表示ReportDocument ' 页面加载事件处理 Private Sub Page_Load(sender As Object, e As EventArgs) ' 创建TableLogOnInfo对象 Dim logOnInfo As New TableLogOnInfo() ' 创建ReportDocument对象 Dim oRpt As New ReportDocument() ' 获取.rpt文件的实际路径 Dim path1 As String, path2 As String path1 = Server.MapPath("\\exer\\pagelet") path2 = Path.Combine(path1, "crystal\cr1.rpt") ' 加载报表文件 oRpt.Load(path2) ' 从web.config文件中获取数据库连接信息 Dim a As String, b As String, c As String, d As String ' 获取ServerName a = System.Configuration.ConfigurationSettings.AppSettings("servername") ' 获取DatabaseName b = System.Configuration.ConfigurationSettings.AppSettings("database") ' 获取UserId c = System.Configuration.ConfigurationSettings.AppSettings("userid") ' 获取Password d = System.Configuration.ConfigurationSettings.AppSettings("pass") ' 配置TableLogOnInfo对象 logOnInfo.ConnectionInfo.ServerName = a logOnInfo.ConnectionInfo.DatabaseName = b logOnInfo.ConnectionInfo.UserID = c logOnInfo.ConnectionInfo.Password = d ' 应用数据库连接信息到报表的每个表 For Each table As Table In oRpt.Database.Tables table.LogOnInfo = logOnInfo table.ApplyLogOnInfo(logOnInfo) Next End Sub ``` 在这个过程中,首先创建了`TableLogOnInfo`对象,然后实例化了`ReportDocument`,加载了`.rpt`报表文件。之后,从`web.config`文件中读取数据库连接字符串的各个部分(ServerName, DatabaseName, UserId, Password),并将这些信息填充到`TableLogOnInfo`中。最后,遍历报表中的所有表,将配置好的数据库连接信息应用到每个表,确保报表在运行时能够正确连接到数据库并加载数据。 这个过程对于开发基于Web的应用程序特别重要,因为这样可以避免在代码中硬编码数据库连接信息,而是将它们存储在配置文件中,便于管理和维护。同时,它也展示了如何利用水晶报表的API动态设置数据库连接,这在处理多个数据库或者需要动态改变连接参数的场景下非常有用。
using CrystalDecisions.Shared ;//负责解释TableLogOnInfo类
using CrystalDecisions.CrystalReports .Engine ;//负责解释ReportDocument类
private void Page_Load(object sender, System.EventArgs e)
{
TableLogOnInfo logOnInfo = new TableLogOnInfo ();
//这里必须事先申明一个ReportDocument对象 Report,同时加载数据报表
ReportDocument oRpt = new ReportDocument();
//获取.rpt文件真实路径
string path1,path2;
path1=Server.MapPath ("\\exer\\pagelet");
path2=path1+"\\crystal\\cr1.rpt";
//oRpt.Load("c:\\inetpub\\wwwroot\\exer\\pagelet\\crystal\\cr1.rpt");
oRpt.Load (path2);
//从web.config中获取logOnInfo参数信息
string a,b,c,d;
//获取ServerName
a=System.Configuration .ConfigurationSettings .AppSettings ["servername"];
//获取DatabaseName
b=System.Configuration .ConfigurationSettings .AppSettings ["database"];
//获取UserId
c=System.Configuration .ConfigurationSettings .AppSettings ["userid"];
//获取password
d=System.Configuration .ConfigurationSettings .AppSettings ["pass"];
//设置logOnInfo参数
logOnInfo.ConnectionInfo.ServerName = a;
logOnInfo.ConnectionInfo.DatabaseName = b;
logOnInfo.ConnectionInfo.UserID = c;
下载后可阅读完整内容,剩余2页未读,立即下载
- 粉丝: 0
- 资源: 2
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 李兴华Java基础教程:从入门到精通
- U盘与硬盘启动安装教程:从菜鸟到专家
- C++面试宝典:动态内存管理与继承解析
- C++ STL源码深度解析:专家级剖析与关键技术
- C/C++调用DOS命令实战指南
- 神经网络补偿的多传感器航迹融合技术
- GIS中的大地坐标系与椭球体解析
- 海思Hi3515 H.264编解码处理器用户手册
- Oracle基础练习题与解答
- 谷歌地球3D建筑筛选新流程详解
- CFO与CIO携手:数据管理与企业增值的战略
- Eclipse IDE基础教程:从入门到精通
- Shell脚本专家宝典:全面学习与资源指南
- Tomcat安装指南:附带JDK配置步骤
- NA3003A电子水准仪数据格式解析与转换研究
- 自动化专业英语词汇精华:必备术语集锦