共用方式為


加入報表登入程式碼

您現在已經可以將登入程式碼加入程式碼後置 (Code-Behind) 類別中。首先要建立私用 Helper 方法 SetDBLogonForReport()。

若要建立和撰寫 SetDBLogonForReport() 方法的程式碼

  1. 返回此 Web 或 Windows Form 的程式碼後置類別。

  2. 在類別底部建立名稱為 SetDBLogonForReport() 的新私用方法,並將ConnectionInfo傳遞到方法簽名碼。

    Private Sub SetDBLogonForReport(ByVal myConnectionInfo As ConnectionInfo)
    
    End Sub
    
    private void SetDBLogonForReport(ConnectionInfo connectionInfo)
    {
    }
    
  3. 在此方法中,從 CrystalReportViewer 類別的 LogOnInfo 屬性,擷取 TableLogOnInfos 執行個體。

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\36bhtx7w.alert_note(zh-tw,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;
```
  1. 建立一個 foreach 迴圈,以便對於每一個 TableLogOnInfo 執行個體能夠以迴圈方式在 TableLogOnInfos 索引類別執行個體中進行處理。

    For Each myTableLogOnInfo As TableLogOnInfo In myTableLogOnInfos
    
    Next
    
    foreach(TableLogOnInfo tableLogOnInfo in tableLogOnInfos)
    {
    }
    
  2. 在 foreach 迴圈中,將 TableLogOnInfo 的 ConnectionInfo 屬性設為 ConnectionInfo 參數。

    myTableLogOnInfo.ConnectionInfo = myConnectionInfo
    
    tableLogOnInfo.ConnectionInfo = connectionInfo;
    

若要修改 ConfigureCrystalReports() 方法以處理資料庫登入程式碼

此步驟程序已建立一個可以設定資料庫登入的方法。但是,您必須修改 ConfigureCrystalReports() 方法來處理這個方法,讓報表能夠知道此方法包含資料庫登入資訊。

修改 ConfigureCrystalReports() 方法需要兩個動作:

  • 設定 ConnectionInfo 執行個體。
  • 呼叫 SetDBLogonForReport() 方法。
  1. 在 ConfigureCrystalReports() 方法中,於繫結報表至 CrystalReportViewer 控制項的程式行下方宣告並產生 ConnectionInfo 類別的執行個體。

    Dim myConnectionInfo As ConnectionInfo = New ConnectionInfo()
    
    ConnectionInfo connectionInfo = new ConnectionInfo();
    
  2. 在下一行,呼叫 SetDBLogonForReport() 方法並傳入 ConnectionInfo 執行個體。

    SetDBLogonForReport(myConnectionInfo)
    
    SetDBLogonForReport(connectionInfo);
    
  3. 設定屬性 DatabaseName、UserID 和 Password,這些均是 ConnectionInfo 執行個體的屬性。

<table>
<colgroup>
<col style="width: 100%" />
</colgroup>
<thead>
<tr class="header">
<th><img src="images\36bhtx7w.alert_note(zh-tw,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 報表的載入

您現在已經可以建置及執行您的專案。報表應能正確載入,因為您已加入登入資料庫的程式碼。

  1. 從 [建置] 功能表中,選取 [建置方案]。

  2. 如果發生任何建置錯誤,請立即修正。

  3. 從 [偵錯] 功能表中,按一下 [啟動]。

NorthwindCustomers 報表會順利顯示。
  1. 返回 Visual Studio,再按一下 [停止] 退出偵錯模式。