Я просто потратил немного времени на выяснение этой проблемы в VB. Надеюсь, это поможет.
Замените YourDataContext () любым контекстом данных. Кроме того, вы можете получить строку подключения из AppConfig как обычно. Я получаю данные из контекста данных, потому что мы переносим базы данных и продолжаем изменять строки подключения.
Private Sub SetCrystalReportsConnection(ByRef report As ReportDocument)
Dim sqlConnInfo As SqlConnectionStringBuilder = New SqlConnectionStringBuilder(New YourDataContext().Connection.ConnectionString)
For Each connection As InternalConnectionInfo In report.DataSourceConnections
If sqlConnInfo.IntegratedSecurity Then
connection.SetConnection(sqlConnInfo.DataSource, sqlConnInfo.InitialCatalog, True)
Else
connection.SetConnection(sqlConnInfo.DataSource, sqlConnInfo.InitialCatalog, sqlConnInfo.UserID, sqlConnInfo.Password)
connection.IntegratedSecurity = False
End If
Next
End Sub