获取水晶报表中文本框的值

时间:2016-02-02 06:24:34

标签: asp.net crystal-reports

我有水晶报告,我需要在水晶报告中获取文本框的值。如果我把textbox1 = 1然后在水晶报告中它显示为1.我该怎么做? 这是我在default.aspx页面中的水晶报告代码。

protected void Page_Load(object sender, EventArgs e)
{  
    TextBox1.Text = "9";
    TextBox2.Text = "02/02/2015";
    TextBox3.Text = "02/03/2015";
    DataTable dt = new DataTable();
    String str = "select * from tbl1 where br=@search and Date between @search1 and @search2  ";
    SqlCommand xp = new SqlCommand(str, con);
    xp.Parameters.Add("@search", SqlDbType.VarChar).Value = TextBox1.Text;
    xp.Parameters.Add("@search1", SqlDbType.VarChar).Value = TextBox2.Text;
    xp.Parameters.Add("@search2", SqlDbType.VarChar).Value = TextBox3.Text;
    con.Open();
    SqlDataAdapter da = new SqlDataAdapter();
    da.SelectCommand = xp;
    da.Fill(dt);
    con.Close();
    if (dt.Rows.Count > 0)
    {
        ReportDocument crystalReport = new ReportDocument();
        crystalReport.Load(Server.MapPath("CrystalReport.rpt"));
        crystalReport.SetDatabaseLogon("xx", "xxxx");
        crystalReport.SetDataSource(dt);
        CrystalReportViewer1.ReportSource = crystalReport;
        CrystalReportViewer1.DataBind();
    }

这里我需要在水晶报告中显示textbox1,2和3值

2 个答案:

答案 0 :(得分:4)

首先,你必须在参数字段下的CrystalReport工具箱中创建3个参数,如下图所示。

enter image description here

然后你需要传递后面代码中的值

var rpt=new ReportDocument();
rpt.SetParameterValue("Search1","I am search1");
rpt.SetParameterValue("Search2","I am search2");
rpt.SetParameterValue("Search3","I am search3");
CrystalReportViewer1.ReportSource = rpt;

答案 1 :(得分:0)

{{1}}

}

我已将参数名称添加为搜索。

但它显示错误无效的报告路径。如果我删除这行crystalReport.SetParameterValue("搜索","我是搜索");然后它的工作。