这是我在页面的pageload事件中调用的函数,下面的三个表已经在水晶报表中有链接了,ckmxcx_print1_cr()是我水晶报表的名字,ckmxcx_print1_ds()是我dataset的名字,请问其中代码有错误吗?Sub BindReport()
            Dim myConnection As New SqlClient.SqlConnection()
            myConnection.ConnectionString = DataBase.connString
            Dim oRpt As New ckmxcx_print1_cr()
            Dim dsdataSet As New ckmxcx_print1_ds()
            Dim selstr1 As String
            selstr1 = "select  *  from  XF_T_CKD_CB " 
            Dim daOrders As New Data.SqlClient.SqlDataAdapter(selstr1, myConnection)
            daOrders.Fill(dsdataSet, "XF_T_CKD_CB")            Dim selstr2 As String
            selstr2 = "select  *  from  XF_T_CKD_ZB  "
            Dim daDetails As New Data.SqlClient.SqlDataAdapter(selstr2, myConnection)
            daDetails.Fill(dsdataSet, "XF_T_CKD_ZB")            Dim selstr3 As String
            selstr3 = "select*  from  XF_ZD_ZZJG" 
            Dim daDetail As New Data.SqlClient.SqlDataAdapter(selstr3, myConnection)
            daDetail.Fill(dsdataSet, "XF_ZD_ZZJG")
            '使用“报表引擎”对象模型将填充的数据集,传递给报表
            oRpt.SetDataSource(dsdataSet)
            CrystalReportViewer1.ReportSource = oRpt
            CrystalReportViewer1.DataBind()        End Sub
我还没有在里面加查询条件,如果要加条件应该怎么加呀?

解决方案 »

  1.   

    你说:
    它还是提示“未能启用约束。一行或多行中包含违反非空、唯一或外键约束的值。”如果表A有一个外键,指向表B的主键;那应该先填充表B,再填充表A,否则就违反了“外键约束”!
    三个表的填充顺序对吗?
    这属于数据集里表之间关系问题,和水晶报表无关!
      

  2.   

    大家一起去这个贴子支持一下!!!
    http://expert.csdn.net/Expert/TopicView1.asp?id=2291055
    CSDN 开个 Crystal Report 版吧!!!&&&我与水晶报表……
    haibodotnet 海波.NET
      

  3.   

    我的建议是使用存储过程,在水晶报表的dataset中调用存储过程,我认为这是一个挺好的办好要不你把dataset中的关联去掉再试一下,可能好使