添加报表登录代码
现在即可向代码隐藏类添加登录代码。首先,创建一个私有帮助器方法 SetDBLogonForReport()。
创建 SetDBLogonForReport() 方法并编写该方法的代码
返回到此 Web 或 Windows 窗体的代码隐藏类。
在类的底部,创建名为 SetDBLogonForReport() 的新私有帮助器方法,并将 ConnectionInfo 传递给方法签名。
Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo) End Sub
private void SetDBLogonForReport(ConnectionInfo connectionInfo) { }
在此方法内,从 CrystalReportViewer 类的 LogOnInfo 属性获取 TableLogOnInfos 实例。
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/8yfdxzdx.alert_note(zh-cn,VS.90).gif" alt="Note" class="note" />注意</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>TableLogOnInfos 是包含 TableLogOnInfo 类实例的索引类。</p></td>
</tr>
</tbody>
</table>
``` vb
Dim myTableLogOnInfos As TableLogOnInfos = myCrystalReportViewer.LogOnInfo
```
``` csharp
TableLogOnInfos tableLogOnInfos = crystalReportViewer.LogOnInfo;
```
创建一个 foreach 循环,它在 TableLogOnInfos 索引类实例的各个 TableLogOnInfo 实例间循环。
For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos Next
foreach(TableLogOnInfo tableLogOnInfo in tableLogOnInfos) { }
在 foreach 循环中,将 TableLogOnInfo 的 ConnectionInfo 属性设置为 ConnectionInfo 参数。
myTableLogOnInfo.ConnectionInfo = myConnectionInfo
tableLogOnInfo.ConnectionInfo = connectionInfo;
修改 ConfigureCrystalReports() 方法以处理数据库登录代码
此过程创建了用于设置数据库登录的方法。但是,必须修改 ConfigureCrystalReports() 方法以处理此方法,这样报表才能识别出其中含有数据库登录信息。
修改 ConfigureCrystalReports() 方法需要两个步骤:
- 配置 ConnectionInfo 实例。
- 调用 SetDBLogonForReport() 方法。
在 ConfigureCrystalReports() 方法中,在将报表绑定到 CrystalReportViewer 控件的代码之下声明并实例化 ConnectionInfo 类。
Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
ConnectionInfo connectionInfo = new ConnectionInfo();
在下一行上,通过传入 ConnectionInfo 实例调用 SetDBLogonForReport() 方法。
SetDBLogonForReport(myConnectionInfo)
SetDBLogonForReport(connectionInfo);
设置 ConnectionInfo 实例的 DatabaseName、UserID 和 Password 属性。
<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images/8yfdxzdx.alert_note(zh-cn,VS.90).gif" alt="Note" class="note" />注意</th>
</tr>
</thead>
<tbody>
<tr class="odd">
<td><p>出于安全性考虑,使用访问权限受到限制的数据库帐户非常重要。有关更多信息,请参见<a href="ms227498(v=vs.90).md">“安全性:创建受限访问数据库帐户”</a>。</p></td>
</tr>
</tbody>
</table>
在编写的代码中,用自己的密码代替示例密码 1234(如下所示)。
``` vb
myConnectionInfo.DatabaseName = "Northwind"
myConnectionInfo.UserID = "limitedPermissionAccount"
myConnectionInfo.Password = "1234"
```
``` csharp
connectionInfo.DatabaseName = "Northwind";
connectionInfo.UserID = "limitedPermissionAccount";
connectionInfo.Password = "1234";
```
测试 NorthwindCustomers 报表的加载过程
现在即可生成并运行项目。由于已经添加了登录数据库的代码,现在应该能够正确加载报表了。
从“生成”菜单中选择“生成解决方案”。
如果生成过程中出错,请立即纠正。
从“调试”菜单中,单击“开始”。
NorthwindCustomers 报表将成功显示。
- 返回到 Visual Studio,然后单击“停止”从调试模式中退出。