Un altro metodo è creare la source in pagina e passarla al report.
codice:
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Put user code to initialize the page here
Dim cnn As New SqlConnection("Data Source=localhost;Initial Catalog=northwind;User ID=sa;Password=;Persist Security Info=True")
Dim cmd As New SqlCommand("Select * from categories", cnn)
Dim da As New SqlDataAdapter
Dim ds As New DataSet
Dim dt As New DataTable("Pippo")
cnn.Open()
da.SelectCommand = cmd
da.Fill(dt)
cnn.Close()
ds.Tables.Add(dt)
ds.WriteXmlSchema("c:\test\test.xsd")
Dim c As New CrystalReport1
c.Load()
c.SetDataSource(dt)
Me.CrystalReportViewer1.ReportSource = c
Me.CrystalReportViewer1.DataBind()
End Sub
Ho aggiunto questa riga
ds.WriteXmlSchema("c:\test\test.xsd")
Per farmi lo scrivere lo schema risultato della mia query e cioè dei dati che verranno passati al report.
Questo ti serve soprattutto quando devi disegnare il report.
Quando aggiungi una connessione al db seleziona "Database Files" e poi cerchi il file xsd di prima.
Il codice che ti ho postato sopra l'ho testato e funziona con il db Northwind.
Ricorda di creare la cartella test e dare le permission all'utente aspnet per scrivere il file.
Fammi sapere
Ciao
K