To:wdaanng(嗨),   我们公司不准用存储过程,因为我们有可会换数据库,除了存储过程和视图,纯编程有办法实现吗?请帮忙!谢谢

解决方案 »

  1.   

    我刚才找到一种办法
      Dim oRpt As New CrystalReport3        Dim dsdataSet As New Dataset2        Dim cn As SqlConnection
            cn = Connection.OpenConnection()        Dim daOrders As New Data.SqlClient.SqlDataAdapter("select * from hr_job_code ", cn)
            daOrders.Fill(dsdataSet, "hr_job_code")        Dim daDetails As New Data.SqlClient.SqlDataAdapter("select * from hr_work_information ", cn)
            daDetails.Fill(dsdataSet, "hr_work_information")        Dim daDetails2 As New Data.SqlClient.SqlDataAdapter("select * from hr_enterprise_code ", cn)
            daDetails2.Fill(dsdataSet, "hr_enterprise_code")        '使用“报表引擎”对象模型将填充的数据集,传递给报表        oRpt.SetDataSource(dsdataSet)        CrystalReportViewer1.ReportSource = oRpt        Connection.CloseConnection(cn)你试一下
    这三个表的关系 hr_work_information.job_id与hr_job_code.job_code相关,,hr_work_information.enterprise_id与hr_enterprise_code.enterprise_code相关
      

  2.   

    TO: wdaanng(嗨)    还是不行喔!我的代码和上面的差不多,上面是把每个表格的数据填入Dataset,我觉得麻烦的地方在这句daDetails2.Fill(dsdataSet, "hr_enterprise_code")后面这个表名不知用哪一个,因为有三个啊!我也想了一个办法,但不知怎样实现,就是把我的Sql语名中的数据(也就是三个表的相关字段)转到一个临时表中,再操作这个临时表,是否能实现.
      

  3.   

    你可以在设计报表的时候添加三个table,并设置关联
    然后用上面的方法设置数据源,dataSet中的表名与report中添加的表名一样就可以了
      

  4.   

    To:icyer() and wdaanng(嗨)    谢谢两位了,已测试成功,现准备测试加上相关条件,真的很感谢!马上给分!