我正在从两个不同的数据库SQL Server和Oracle运行Visual Studio应用程序。
我使用SQL Server创建了Crystal Reports。现在我想为SQL Server和Oracle数据库服务器运行相同的报告。我可以从c#代码后面做到吗?我可以为Oracle和SQL Server更改数据源吗?
答案 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();
}