Using VS2008 vb I'm trying to manually load the datasource for a report with the following code:
cmd.Connection = sql
cmd.CommandType = System.Data.CommandType.Text
cmd.CommandText = "SELECT dbo.v_Incident.*, dbo.v_IComment.* FROM dbo.v_IComment INNER JOIN dbo.v_Incident ON dbo.v_IComment.Incident_FK = dbo.v_Incident.Incident_PK WHERE (dbo.v_Incident.Incident_PK = " + assigned + ")"
If sql.State <> ConnectionState.Open Then sql.Open()
da.SelectCommand = cmd
' da.Fill(ds, "v_Incident")
Catch ex As Exception
MsgBox("Error Connecting to database.", MsgBoxStyle.Critical, "Error Alert!")
ReportViewer1.ProcessingMode = Microsoft.Reporting.WinForms.ProcessingMode.Local
Me.ReportViewer1.LocalReport.ReportEmbeddedResource = "Search.Report3.rdlc"
ReportDataSource1.Name = "v_Incident"
ReportDataSource1.Value = ds.Tables("v_Incident")
The Form with the report viewer "ReportViewer" loads but displays a grayed out error where the report should be:
A data source instance has not been supplied for the data source 'ReportEvent_v_Incident'.
As a note I had this working with the built in dataset generator and then took it out to do it manually. I've been putzing around with the code for hours now so things may have gotten really messed up now.
Now, if you are trying to use a report that you previously built off of a table adapter you created, you will need to change the datasource of that report to this datatable you just built. If you can't get this to work because it can be quirky, rebuild the report using this newly created datatable in the .XSD file.
Now that you have a report linked to your newly created "datatable" (not table adapter) in the .XSD file, you can add this one line of code to what you were attempting.
So you're entire code section should look like this code snippet.
Open in new window