且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何将SQL Server Compact Edition数据库连接到C#

更新时间:2022-11-24 20:22:25

有用 CodeProject示例



我将演示一个更简单的示例,以便更容易找出。


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


  2. 添加一个DataSet文件)到您的项目中使用解决方案资源管理器中的添加 - >新建项目。之后,向DataSet添加一个DataTable。



  1. DataTable 。***将它们命名为与您要在报告中显示的列相同。列数取决于在Crystal报表中应显示的列数。


  2. 使用add - > New Items报表向导,选择项目数据源的ADO.NET数据集作为Crystal报表的数据源,并选择刚刚在DataSet中创建的数据表作为Crystal报表的选定表。





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


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

     code> private void btnGo_Click(object sender,EventArgs e)
    {
    CrReport2 objRpt = new CrReport2();
    string query =Select Name,Number from tblInfo; //你的sql查询
    SqlCeConnection conn =
    new SqlCeConnection(
    @Data Source = | DataDirectory | \myDB.sdf; Persist Security Info = False); //您的连接

    SqlCeDataAdapter adepter = new SqlCeDataAdapter(query,conn);
    DsReport Ds = new DsReport(); // DsReport是我的数据集

    adepter.Fill(Ds,customer); // customer是我的数据集中的数据集

    objRpt.SetDataSource(Ds);
    crystalReportViewer1.ReportSource = objRpt;


I'm trying to connect my SQL Server Compact Edition database to Crystal Report. I've been searching all day long and I've found many question related to it so far on other websites, but none had a working answer.

I also found this question in this site which has asked for VB.Net solution. And this link which is all over the internet and has a confusing way to do it by XML, which I couldn't figure it out.

There are other links with solutions in SQL Server and Access which don't help.

I'm wondering is there a simple way to connect a SQL Server CE database to Crystal Report which actually works?

So I found my solution thanks to this helpful CodeProject sample

I will demonstrate an easier sample to make it easier to figure it out.

  1. Create a Winform and add a button and a CrystalReportViewer control to it.

  2. Add a DataSet (*.xsd file) to your project using add -> New Items in solution explorer. After that, add a DataTable to the DataSet.

  1. Add columns to DataTable. It's better to name them the same as the columns you are going to display on your report. The number of columns depends on how many columns should be displayed in the Crystal report.

  2. Add a Crystal Report into the project using add -> New Items and using the Report Wizard, choose ADO.NET DataSets of the Project data source as the data source of the Crystal Report and select the data table you just created in your DataSet, as the selected table of the Crystal Report.

  1. Click finish and your columns will automatically be added in CrystalReport.

  2. Go to the button click event and write these codes in it.

    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. Enjoy your report :)