如何在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); 
}
有谁能帮我完成这个任务吗?我将非常感谢你。

如何在Windows窗体应用程序中使用c#连接Crystal报表到MS Access数据库

您需要采取的步骤:

    创建.rpt文件。为此,我总是使用一个单独的库来保存我所有的报告,但这不是必要的,你可以在你的主解决方案中这样做。无论哪种方式,您都必须确保有对CrustalDecisions.CrystalReports.Engine的引用。CrustalDecisions.ReportSource;CrustalDecisions.Shared;和CrustalDecisions.Windows.Forms。
  1. 你现在可以右键单击你的项目,添加,新建项目,然后在Visual c#下你会看到水晶报告。选择您的报告名称,单击添加,接受使用报告向导和标准布局的默认值。现在展开"创建新连接",单击Access/Excel,系统将提示您输入数据库文件的位置。由于有密码保护,现在必须单击Secure Logon并输入密码(作为数据库密码)。当您单击Finish时,您现在应该看到您的数据库文件,并在其下面列出了表等。选择报表的基础,使用箭头将其移动到已选表(右侧)。单击Next,然后以同样的方式选择所需的Fields。您现在可以单击Finish。
  2. 添加一个CrystalReportViewer控件到一个窗体中,该窗体将成为报告的"宿主"窗体。
  3. 使用与主机表单构造函数中相同的c#代码连接到数据库。这可以是一个不同的数据库,有不同的密码,只要它有相同的表。
  4. 最后添加以下代码:

    //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;
    
一旦你有了基本的工作,你可以开始玩你的报告的设计,使用所见即所得的设计器!