Там много способов сделать это, но это так, как я это делаю. Кстати, у меня это в библиотеке, которую я использую в нескольких приложениях. ПРИМЕЧАНИЕ. Это предполагает строку подключения клиента SQL, вы можете изменить ее в соответствии с вашими потребностями.
Public Shared Sub SetupReportConnections(ByVal rpt As CrystalDecisions.CrystalReports.Engine.ReportDocument, ByVal ConnString As String, Optional ByVal UpdateSubReport As Boolean = True)
If ConnString = "" Then Exit Sub
'First, parse the connection string for the parts we need
Dim CN As New SqlClient.SqlConnection(ConnString)
Dim sServer As String = CN.DataSource
Dim sDatabase As String = CN.Database
'Update the connection information for each table
Dim crtableLogoninfo As New CrystalDecisions.Shared.TableLogOnInfo
Dim CrTables As CrystalDecisions.CrystalReports.Engine.Tables
Dim CrTable As CrystalDecisions.CrystalReports.Engine.Table
CrTables = rpt.Database.Tables
For Each CrTable In CrTables
crtableLogoninfo = CrTable.LogOnInfo
crtableLogoninfo.ConnectionInfo.ServerName = sServer
CrTable.ApplyLogOnInfo(crtableLogoninfo)
Next
If UpdateSubReport Then
For Each subrpt As CrystalDecisions.CrystalReports.Engine.ReportDocument In rpt.Subreports
SetupReportConnections(subrpt, ConnString, False)
Next
End If
End Sub