如何在Windows窗体应用程序中使用c#连接Crystal报表到MS Access数据库
本文关键字:报表 Crystal 连接 MS 数据库 Access Windows 窗体 应用程序 | 更新日期: 2023-09-27 18:02:21
我想在我的windows窗体应用程序中使用c#连接Crystal Reports到MS Access数据库。
我使用下面的代码连接水晶报告与MS Access数据库,但它不工作。
ReportDocument crReport = new ReportDocument();
string sTemplatePath = "D:''Report''Sample.rpt";
crReport.Load(sTemplatePath);
TableLogOnInfo crTableLogOnInfo = new TableLogOnInfo();
ConnectionInfo tConnInfo = new ConnectionInfo();
tConnInfo.DatabaseName = "D:''AccessDB''AccessDb.mdb";
tConnInfo.Password = "abcd";
foreach (CrystalDecisions.CrystalReports.Engine.Table crTable in crReport.Database.Tables)
{
crTableLogOnInfo = crTable.LogOnInfo;
crTableLogOnInfo.ConnectionInfo = tConnInfo;
crTable.ApplyLogOnInfo(crTableLogOnInfo);
}
有谁能帮我完成这个任务吗?我将非常感谢你。
您需要采取的步骤:
- 创建.rpt文件。为此,我总是使用一个单独的库来保存我所有的报告,但这不是必要的,你可以在你的主解决方案中这样做。无论哪种方式,您都必须确保有对CrustalDecisions.CrystalReports.Engine的引用。CrustalDecisions.ReportSource;CrustalDecisions.Shared;和CrustalDecisions.Windows.Forms。
- 你现在可以右键单击你的项目,添加,新建项目,然后在Visual c#下你会看到水晶报告。选择您的报告名称,单击添加,接受使用报告向导和标准布局的默认值。现在展开"创建新连接",单击Access/Excel,系统将提示您输入数据库文件的位置。由于有密码保护,现在必须单击Secure Logon并输入密码(作为数据库密码)。当您单击Finish时,您现在应该看到您的数据库文件,并在其下面列出了表等。选择报表的基础,使用箭头将其移动到已选表(右侧)。单击Next,然后以同样的方式选择所需的Fields。您现在可以单击Finish。
- 添加一个CrystalReportViewer控件到一个窗体中,该窗体将成为报告的"宿主"窗体。
- 使用与主机表单构造函数中相同的c#代码连接到数据库。这可以是一个不同的数据库,有不同的密码,只要它有相同的表。
最后添加以下代码:
//Assign data source details to the report viewer if (this.crystalReportViewer1.LogOnInfo != null) { TableLogOnInfos tlInfo = this.crystalReportViewer1.LogOnInfo; foreach (TableLogOnInfo tbloginfo in tlInfo) { tbloginfo.ConnectionInfo = tConnInfo; } } crystalReportViewer1.ReportSource = crReport;