Read this general information about VB.NET & Crystal Reports
It could be helpful
'To pass logon information to a Crystal Report at runtime
'If you are using a Strongly Typed report (Imported in your project) named CrystalReport1.rpt use the following:
Dim crtableLogoninfos As New TableLogOnInfos()
Dim crtableLogoninfo As New TableLogOnInfo()
Dim crConnectionInfo As New ConnectionInfo()
Dim CrTables As Tables
Dim CrTable As Table
'If you are using a Non-Typed report, and loading a report outside of the project, use the following:
Dim crReportDocument As New CrystalReport1()
'Set the ConnectionInfo properties for logging on to the Database
Dim crReportDocument As New ReportDocument()
'If you are using ODBC, this should be the DSN name NOT the physical server name.
'If you are NOT using ODBC, this should be the physical server name
'This code works for both user tables and stored procedures.
.ServerName = "DSN or Server Name"
'If you are connecting to Oracle there is no DatabaseName. Use an empty string. For example, .DatabaseName = ""
.DatabaseName = "DatabaseName"
.UserID = "Your User ID"
.Password = "Your Password"
'Set the CrTables to the Tables collection of the report
CrTables = crReportDocument.Database.Tables
'Loop through each table in the report and apply the LogonInfo information
For Each CrTable in CrTables
CrTableLogonInfo = CrTable.LogonInfo
CrTableLogonInfo.ConnectionInfo = crConnectionInfo
'If your DatabaseName is changing at runtime, specify the table location.
'For example, when you are reporting off of a Northwind database on SQL server you should have the following line of code:
crTable.Location = "Northwind.dbo." & crTable.Location.Substring(crTable.Location.LastIndexOf(".") + 1)
'Set the viewer to the report object to be previewed.
CrystalReportViewer1.ReportSource = crReportDocument