如何在C#中将SQL Server Compact Edition数据库连接到Crystal Report

我正在尝试将我的SQL Server Compact Edition数据库连接到Crystal Report。 我一整天都在搜索,到目前为止我在其他网站上发现了许多与之相关的问题,但没有一个有可靠的答案。

我也在这个网站上发现了这个问题 ,要求提供VB.Net解决方案。 这个链接遍布互联网,并且有一种令人困惑的方式来通过XML来实现,我无法弄明白。

SQL Server和Access中的解决方案还有其他链接没有帮助。

  • SQL Server解决方案
  • 访问解决方案

我想知道是否有一种简单的方法将SQL Server CE数据库连接到Crystal Report实际上有效?

所以我找到了我的解决方案,感谢这个有用的CodeProject示例

我将展示一个更容易的样本,以便更容易弄清楚。

  1. 创建一个Winform并向其添加一个按钮和一个CrystalReportViewer控件。

  2. 使用解决方案资源管理器中的add – > New Items将DataSet(* .xsd文件)添加到项目中。 之后,将DataTable添加到DataSet。

在此处输入图像描述

  1. 将列添加到DataTable 。 最好将它们命名为与要在报告中显示的列相同的名称。 列数取决于Crystal报表中应显示的列数。

  2. 使用添加 – >新项目并使用报表向导将Crystal Report添加到项目中,选择Project数据源的ADO.NET DataSet作为Crystal Report的数据源,并选择刚刚在DataSet中创建的数据表,如Crystal Report的选定表格。

在此处输入图像描述

在此处输入图像描述

  1. 单击“完成”,您的列将自动添加到CrystalReport

  2. 转到按钮单击事件并在其中写入这些代码。

     private void btnGo_Click(object sender, EventArgs e) { CrReport2 objRpt = new CrReport2(); string query = "Select Name,Number from tblInfo"; //Your sql query SqlCeConnection conn = new SqlCeConnection( @"Data Source=|DataDirectory|\myDB.sdf;Persist Security Info=False"); //Your connection SqlCeDataAdapter adepter = new SqlCeDataAdapter(query, conn); DsReport Ds = new DsReport(); //DsReport is my dataset adepter.Fill(Ds, "customer"); //customer is my datatable in dataset objRpt.SetDataSource(Ds); crystalReportViewer1.ReportSource = objRpt; } 
  3. 享受你的报告:)