Ladies & Gentlemen,
I have been, thus far, successful in programmatically pulling records from a MySQL database to create a crystal report from a single table. Using the code below, I’m trying to join two tables and display their matched records on the report:
Try
Dim myConnectionString As String = "Server=" & FormLogin.ComboBoxServerIP.SelectedItem & ";Port=3306;Uid=parts;Password=parts;Database=accounting;"
Dim dbConn As New MySqlConnection(myConnectionString)
Dim dbQuery As String = "SELECT * " & _
"FROM cc_master a JOIN customer b ON b.accountNumber = a.customer_accountNumber;"
Dim dbAdapter As New MySqlDataAdapter(dbQuery, dbConn)
Dim dbTable As New DataTable
dbAdapter.Fill(dbTable)
Dim report As New rptCardListAll
report.SetDataSource(dbTable)
CrystalReportViewer1.ReportSource = report
CrystalReportViewer1.Zoom(1)
Catch ex As Exception
'MsgBox(ex.Message)
End Try
The problem I’m running into now is that when the report runs at run-time, all the db records are populated on the report except for the one field that I’m pulling from the CUSTOMER table. Below is a screen shot. Notice the blank CUSTOMER NAME – this shouldn’t be blank because I know for a fact there’s data in that field for every record.
The query works fine when I run it directly on the DB using MySQL Workbench, so I can’t figure out why the report won’t pull the requested information. Any help would be appreciated, thanks.

EDIT: Screenshot showing DataSet Visualizer during debug containing the missing field (nameCOMPANY)

Good evening all,
So after hours of reading and searching the web, I’ve managed to arrive at or better yet, discover, a solution to my problem.
It appears that even though I’d created a DataSet within VS and used that to create my CR Report, I wasn’t actually using that DataSet in code. Instead what I was doing was creating a new DataTable at run-time, filling that with my query result, and setting the report’s datasource property to it.
What I should have been doing was to create an instance of my DataSet (the one I created earlier and used to design the report), fill it with my query result, and set the report’s datasource property to it. This allowed CR to recognize and respect the table links/relationships I established earlier in the DataSet designer. I also learned that when using the DataAdapter with a query that returns multiple tables, the default naming convention is “Table” then “Table1” and so forth – that it was necessary to map these to the actual names of my tables in the DB.
So after applying all these lessons, I had to re-do my code as follows:
My report now shows the missing field “nameCOMPANY” from the customer table.
CREDIT:
I want to thank @halfer, @luchosrock, and @EvilBob22 for their assistance. Also, I give credit to the authors in the following documents:
http://developer-content.emc.com/developer/downloads/CrystalReport_ADO_Dataset.pdf
How to fill Dataset with multiple tables?