这是我第一次考虑这样做,并且正如预期的那样出错了。 我在谷歌上发现了这一块代码并根据我的需要进行了编辑。 除了错误之外,它仍然没有提供报告查看器的任何信息:
尚未指定报告定义的来源。
string strConnectionString = "Data Source=(LocalDB)\\MSSQLLocalDB;AttachDbFilename=|DataDirectory|\\EvidencijaDB.mdf;Integrated Security=True";
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
SqlCommand cmd = new SqlCommand("SELECT * FROM T_Plate");
cmd.CommandType = CommandType.Text;
cmd.Connection = new SqlConnection(strConnectionString);
da.SelectCommand = cmd;
da.Fill(ds, "DataSet1");
rvPlate.ProcessingMode = ProcessingMode.Local;
rvPlate.LocalReport.DataSources.Clear();
rvPlate.LocalReport.DataSources.Add(new ReportDataSource("DataSet1", ds.Tables[0]));
rvPlate.LocalReport.Refresh();
rvPlate.RefreshReport();
编辑: 我添加了
rvPlate.LocalReport.ReportEmbeddedResource = "IzvestajPlata.rdlc";
行并创建了IzvestajPlate.rdlc。现在看起来代码正在运行,但报表查看器中没有输出任何内容。
EDIT2: 添加后
foreach (DataTable thisTable in ds.Tables)
{
foreach (DataRow row in thisTable.Rows)
{
foreach (DataColumn column in thisTable.Columns)
{
Console.WriteLine(row[column]);
}
}
}
我得到一个输出:
1 Intesa1 111111 8800 2 Intesa2 222222 17600 3 Intesa3 333333 18400
因此数据集不为空而只是不向报表查看器发送值... 任何人吗?
答案 0 :(得分:0)
您尚未提供嵌入式资源。在代码中添加以下行:
rvPlate.LocalReport.ReportEmbeddedResource = "YourReport.rdlc";