我尝试将SQL Server Compact Edition数据库连接到Crystal Report。我一整天都在搜索,到目前为止,我在其他网站上发现了很多与之相关的问题,但没有一个有可靠的答案。
我还在此站点中找到this question,要求提供VB.Net解决方案。而且this link遍布互联网,并且有一种令人困惑的方式来通过XML来实现,我无法弄明白。
SQL Server和Access中还有其他与解决方案无关的链接。
我想知道有一种简单的方法可以将SQL Server CE数据库连接到Crystal Report,它实际上有效吗?
答案 0 :(得分:3)
所以我找到了我的解决方案,感谢这个有用的CodeProject sample
我将展示一个更简单的样本,以便更容易找到它。
创建一个Winform并添加一个按钮和一个CrystalReportViewer
控件。
使用add - >将DataSet(* .xsd文件)添加到项目中解决方案资源管理器中的新项之后,将DataTable添加到DataSet。
将列添加到DataTable
。最好将它们命名为与要在报表上显示的列相同的名称。列数取决于Crystal报表中应显示的列数。
使用add - >将Crystal Report添加到项目中“新建项目”并使用“报表向导”,选择“项目”数据源的ADO.NET DataSet作为Crystal Report的数据源,并选择刚刚在DataSet中创建的数据表,作为Crystal Report的选定表。
点击完成后,您的列将自动添加到CrystalReport
。
转到按钮点击事件并在其中写下这些代码。
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;
}
享受您的举报:)