只要将crReport.SetDataSource(mDs);改为crReport.SetDataSource(mDs.Tables[0]);即可。

解决方案 »

  1.   

    你的CrystalReport1.rpt需要设定dataset吗???还是只是1个空报表
      

  2.   

    不是空报表,不需要DATASET!
    记得在报表设计完后 LOG OFF(断开数据库连接) ,然后保存!一切OK!!!
      

  3.   

    Sub BindReport()    Dim myConnection As New SqlClient.SqlConnection()     myConnection.ConnectionString= "server= (local)\NetSDK;database=pubs;Trusted_Connection=yes"    Dim MyCommand As New SqlClient.SqlCommand()    MyCommand.Connection = myConnection    MyCommand.CommandText = "Select * from Stores"    MyCommand.CommandType = CommandType.Text    Dim MyDA As New SqlClient.SqlDataAdapter()    MyDA.SelectCommand = MyCommand    Dim myDS As New Dataset1()    '这就是我们在设计模式上使用的DataSet     MyDA.Fill(myDS, "Stores")     '你不得不使用与你前面DataSet相同名字。    Dim oRpt As New CrystalReport1()    ' 水晶报表绑定    oRpt.SetDataSource(myDS)    ' 设定水晶报表的ReportSource    CrystalReportViewer1.ReportSource = oRpt  End Sub你改一下那个SELECT语句就可以了。
      

  4.   

    谢谢大家讨论,我的方法类似于 rosy11(rosy) !散分