如何使用编码的DataSet在C#中创建ReportViewer

时间:2013-02-23 14:10:48

标签: c# report reportviewer

我想在C#ReportViewer上以某种方式创建类似发票的发票。但我不知道如何通过代码格式化报告。我的代码出错了。这是我使用的:

 private void Form1_Load(object sender, EventArgs e)
    {
        try
        {
            conn = new SqlConnection();
            conn.ConnectionString = @"Data Source=.\SQLEXPRESS;Initial Catalog=PrototypeV9;Integrated Security=True";
            conn.Open();

            if (conn.State == ConnectionState.Open)
            {

                MessageBox.Show("HEY");
            }


            this.reportViewer1.Reset();
            this.reportViewer1.LocalReport.ReportPath = @"C:\Users\Lenon\Documents\Euge's Folder\SampReport\SampReport\bin\Report2.rdlc";
            ReportDataSource rds = new ReportDataSource("dsNewDataSet_Table", getData());
            this.reportViewer1.LocalReport.DataSources.Clear();
            this.reportViewer1.LocalReport.DataSources.Add(rds);
            //this.reportViewer1.DataBind();
            this.reportViewer1.LocalReport.Refresh();

            this.reportViewer1.RefreshReport();
        }
        catch (Exception ex) {

            MessageBox.Show("no");
        }
    }

    private void rptGetDataset()
    {
        string path = @"C:\Program Files";
        DataSet ds = new DataSet();
        ds.DataSetName = "dsNewDataSet";
        string sql = "";
        sql = "select * from Sample3 where ProductID = 'ITM42512'";
        SqlDataAdapter da = new SqlDataAdapter(sql, conn);
        ds.GetXmlSchema();
        da.Fill(ds);
        ds.WriteXmlSchema(path + @"\App_Code\Ds.xsd");
        ds.WriteXml(path + @"\App_Code\Ds.xml");
    }

     private DataTable getData()
{
    DataSet dss = new DataSet();
    string sql = "";
    sql = "select * from Sample3 where ProductID = 'ITM42512'";
    SqlDataAdapter da = new SqlDataAdapter(sql, conn);
    da.Fill(dss);
    DataTable dt = dss.Tables[0];
    return dt;
}

如何解决我的问题?或者是否有其他方法可以使用ReportViewer创建发票。谢谢!

1 个答案:

答案 0 :(得分:2)

这是一个古老的问题,你可能已经有了答案,但我一直在研究类似的东西并且经历了似乎相同的情况(这就是我在这里的原因)。

由于缺少RDLC文件,因此触发了该错误。您可以静态或动态创建RDLC定义。

对于静态版本,您可以使用Visual Studio的向导轻松找到有关如何执行此操作的许多教程。如果您想动态地执行此操作,this answer将导致在.Net 2.0中为SSRS 2005设计的代码项目中的教程。它非常好而且详细。

另一个解决方案(我使用的是)在got reportviewer?中,查找“动态生成RDLC - 表”。示例代码将帮助您创建自己的版本;它不需要很多更改就可以让它在你的项目中运行。

如果您处理大量报告,动态版本会特别有用。

希望这有帮助,欢呼!