方法'Render'没有重载需要1个参数

时间:2012-02-12 07:04:16

标签: c#-4.0 c#-3.0

这是我为我的项目生成pdf报告的代码

public partial class Report : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            getreport();
        }
    }
    public override void VerifyRenderingInServerForm(Control control)
    {
        // base.VerifyRenderingInServerForm(control);

    }


    public void getreport()
    {
        string province = Request.QueryString["Province"].ToString();
        string district = Request.QueryString["District"].ToString();
        string village = Request.QueryString["Village"].ToString();
        ReportViewer1.ProcessingMode = ProcessingMode.Local;
        LocalReport rep = ReportViewer1.LocalReport;
        rep.ReportPath = @"Report.rdlc";
        ReportDataSource dsRep = new ReportDataSource();
        dsRep.Name = "DataSet1";
        dsRep.Value = GetDataTable(province, district, village);
        rep.DataSources.Clear();

        rep.DataSources.Add(dsRep);
        //ReportViewer1.DocumentMapCollapsed = true;
        //ReportViewer1.ShowPrintButton = true;
        //rep.Render("PDF");
        byte[] result = null;
        result = rep.Render("PDF");
        Response.ClearContent();
        Response.AppendHeader("content-length", result.Length.ToString());
        Response.ContentType = "application/pdf";
        Response.BinaryWrite(result);
        Response.Flush();
        Response.Close();
        rep.Refresh();
    }
    protected DataTable GetDataTable(string p,string d,string v)
    {
        SqlConnection con = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["DBConnectionString"].ToString());
        DataTable dt;
        SqlDataAdapter da;
        SqlCommand cmd;
        string filter = "";
        try
        {
            if (con.State == ConnectionState.Open)
            {
                con.Close();
            }
            con.Open();
            cmd = new SqlCommand("select '" +p + "' as UserName, '"+d+"'Password,'"+ v+"'  as category", con);
            da = new SqlDataAdapter(cmd);
            dt = new DataTable();
            da.Fill(dt);
            cmd.Dispose();
            con.Close();
            return dt;

        }
        catch (Exception ex)
        {

            return null;
        }

}

1 个答案:

答案 0 :(得分:1)

Render方法确实有overload that takes one parameter in .NET 4.0,但不在previous versions

您必须按以下方式调用(String, String, out String, out String, out String, out String[], out Warning[])重载。

string extension;
string encoding;
string mimeType;
string extension;
string[] streams;
Warning[] warnings;

result = rsExec.Render("PDF", null, 
            out extension, out encoding,
            out mimeType, out streams, out warnings);