在vs2012 express c#中向reportviewer添加SQL Server CE数据集
本文关键字:SQL Server CE 数据集 添加 reportviewer vs2012 express 中向 | 更新日期: 2023-09-27 18:13:59
我在c#中使用VS 2012 express编码,并且在从数据集(我使用SQL Server CE)添加数据到reportview时存在问题。我的代码是:
private void button1_Click(object sender, EventArgs e)
{
System.Data.SqlServerCe.SqlCeConnection con;
System.Data.SqlServerCe.SqlCeDataAdapter da;
DataSet ds1;
con = new System.Data.SqlServerCe.SqlCeConnection();
con.ConnectionString = ConfigurationManager.ConnectionStrings["MySalon.Properties.Settings.MySalonConnectionString"].ToString();
string sql = "SELECT * FROM CUSTOMER_PAYMENTS;";
try
{
con.Open();
da = new System.Data.SqlServerCe.SqlCeDataAdapter(sql, con)
ds1 = new DataSet();
da.Fill(ds1, "DayRep");
ReportDataSource datasource;
datasource = new ReportDataSource("DayRep", ds1.Tables[0]);
reportViewer1.LocalReport.DataSources.Clear();
reportViewer1.LocalReport.DataSources.Add(datasource);
con.Close();
reportViewer1.LocalReport.Refresh();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
我可以看到数据源有数据,但当按下按钮时报告仍为空白(没有错误只是空白)。
尝试添加以下代码行:
reportViewer1.LocalReport.ReportEmbeddedResource =
"Your_Name_Of_Project.Name_Of_Your_Report.rdlc";
如果您创建了自己的.rdlc报告文件,那么应该是这样,以便向reportViewer指示从哪里获取数据。
还有,这行代码在哪里?
this.reportViewer1.RefreshReport();
通常,它是由工作室添加的(如果您使用它编写代码)。它应该在代码的末尾,就在try
块的末尾。无论如何,它是"mustHave",没有它,你的报告将是空白的。
还有,我觉得你应该替换这行代码:
ds1 = new DataSet();
和这个:
ds1 = new DataSet("myDataSet"); //for exmaple, so to make dataSet have some name
,然后重写这行代码:
datasource = new ReportDataSource("DayRep", ds1.Tables[0]);
下:与
dataSource = new ReportDataSource("myDataSet", ds1.Tables[0] as DataTable);
你不需要安装rdlc teamplate来通过ReportViewer运行和显示报告。
正如这里所说的,(在例子中),你可以这样写
// Set Processing Mode
reportViewer.ProcessingMode = ProcessingMode.Local;
// Set RDL file
using (FileStream stream = new FileStream("report1.rdlc", FileMode.Open))
{
reportViewer.LocalReport.LoadReportDefinition(stream);
}
因此,报告将被加载到repoerViewer中。这里的主要问题是我有一些.rdlc报告,所以我现在可以加载它们。要在没有模板的情况下创建它们,您可以使用另一种方法,因此可以通过编程方式创建它们——也许本文可以帮助您。还有,看看这里的MSDN。
UPD2 您可以通过此链接查看rdlc
报告的文本版本。但是请记住,您无法将这个rdlc
完全加载到reportViewer中并查看您希望它看到的数据。.rdlc
只是一个例子,每一个报告都应该由项目的开发者创建。主要原因是.rdlc
我使用你没有的数据集,因为它从你没有的数据库中得到数据。所以,我认为你看这个rdlc
的唯一原因只是为了熟悉。要成功创建.rdlc
报告,您应该使用我之前提到的方法。要获得更多信息,您可以尝试在google中搜索"以编程方式生成报告定义",或者找到一些在IDE中创建报告的机会,就像Visual Studio一样。