Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim sql As String = "Select * FROM hy_cwbb"
        Dim DBConfig_sql As String = "Data Source=localhost;Initial Catalog=ufdata_001_2008;User ID=sa;Password="
        Dim ds As New DataSet
        Dim sqlcon As New SqlConnection
        sqlcon.ConnectionString = (DBConfig_sql)
        sqlcon = New SqlConnection(DBConfig_sql)
        Dim sqlcmd As SqlCommand
        sqlcmd = New SqlCommand(sql,sqlcon)
        Dim sqlad As SqlDataAdapter = New SqlDataAdapter()
        sqlad.SelectCommand = sqlcmd
        sqlad.Fill(ds, "sql")        Dim oRpt As New CrystalReport1()
        oRpt.SetDataSource(ds.Tables("sql"))
        Me.CrystalReportViewer1.ReportSource = oRpt出错:, oRpt.SetDataSource(ds.Tables("sql"))  "该报表不包含表"
我知道是应该CrystalReport1.rpt上添加数据源与打印字段,但怎么也无法选到dataset.table里的字段啊??
怎样才能选到dataset里的数据表呢?

解决方案 »

  1.   

       oRpt.SetDataSource(ds.Tables("sql").DefaultView) 
    vb.net不是很熟
      

  2.   

    不行啊,我又加了个DATASET1.XSD,然后添加table相同的字段,可以显示了.
    但只能这样处理吗? 不能获取DATASET.table的内容吗?
    刚刚学,请指点一二!
    网上大部分都是直接连接数据库选表的字段的例子.
      

  3.   

    sqlad.Fill(ds, "sql") 
    这个sql的表名,必须与你水晶报表里设计用的表名一样才行,不能随意取
      

  4.   

    关键是怎样把DATASET里的TABLE传到rpt文件里啊?? 用数据库专家设置选不出来呢?
      

  5.   

    做数据源有几种方法,怎么做?关键是怎样把DATASET里的TABLE传到rpt文件里啊?? 用数据库专家设置选不出来呢?只能通过添加DATASET1.XSD文件吗?
      

  6.   

    oRpt里面要在左侧的字段资源管理器--数据库字段--右击数据库专家--根据oledb的sqlserver添加你的表
    ,加入你的字段。并将要显示的字段,拖到右边的详细资料中。
      

  7.   

    这样就不会报错了。原因就是你的orpt中没有表的字段。