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

时间:2014-09-14 05:32:52

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

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

我还在此站点中找到this question,要求提供VB.Net解决方案。而且this link遍布互联网,并且有一种令人困惑的方式来通过XML来实现,我无法弄明白。

SQL Server和Access中还有其他与解决方案无关的链接。

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

1 个答案:

答案 0 :(得分:3)

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

我将展示一个更简单的样本,以便更容易找到它。

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

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

  3. enter image description here

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

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

    3. enter image description here

      enter image description here

      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. 享受您的举报:)