同一水晶报告上的不同数据库

时间:2013-12-30 05:27:51

标签: c# sql-server oracle crystal-reports

我正在从两个不同的数据库SQL Server和Oracle运行Visual Studio应用程序。

我使用SQL Server创建了Crystal Reports。现在我想为SQL Server和Oracle数据库服务器运行相同的报告。我可以从c#代码后面做到吗?我可以为Oracle和SQL Server更改数据源吗?

1 个答案:

答案 0 :(得分:0)

为什么要从直接向数据库生成报告,您应该通过c#代码设置数据源。如果按代码设置数据源,则晶体报告不需要数据库。像下面的例子。

就像你有一个员工集合。

public ICollectionView Employee  { get; set; }

EmployeeReport reportClass =new EmployeeReport ();

Employee = CollectionViewSource.GetDefaultView(emp);

//调用报告方法

DisplayReport(reportClass ,Employee ,"Test Company name","Employee List");

//显示报告的方法

   public static void DisplayReport(ReportClass reportClass, object Employee, string companyName, string reportHeader)
    {
        reportClass.SetDataSource(source);
        var viewer = new ReportViewer();

        if(companyName != null)
            reportClass.SetParameterValue("txtCompanyName", companyName);

        if(reportHeader != null)
            reportClass.SetParameterValue("Header", reportHeader);

        viewer.SetReportSource(reportClass);

        viewer.ShowDialog();
    }