来自SQL查询的C#报告

时间:2016-06-02 11:42:19

标签: sql view report

这是我第一次考虑这样做,并且正如预期的那样出错了。 我在谷歌上发现了这一块代码并根据我的需要进行了编辑。 除了错误之外,它仍然没有提供报告查看器的任何信息:

  

尚未指定报告定义的来源。

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

因此数据集不为空而只是不向报表查看器发送值... 任何人吗?

1 个答案:

答案 0 :(得分:0)

您尚未提供嵌入式资源。在代码中添加以下行:

rvPlate.LocalReport.ReportEmbeddedResource = "YourReport.rdlc";