在 ASP.NET 中显示报告查看器

Show report viewer in ASP.NET

各位。我有一个带有报告查看器的简单 WebApp,它应该显示我的查询结果。我已经编写了应该通过 select 查询获取数据的代码。然后我写了一个小方法,应该在报表查看器上显示我的记录。我究竟做错了什么?

protected void Button1_Click(object sender, EventArgs e)
{
    showReport();
}

protected void showReport()
{ 
    rptViewer.Reset();
    DataTable dt = GetData(Convert.ToInt64(TextBox1.Text));
    ReportDataSource rds = new ReportDataSource("DataSet1", dt);
    rptViewer.LocalReport.DataSources.Add(rds);
    rptViewer.LocalReport.ReportPath = "Report1.rdlc";
    ReportParameter rptParam = new ReportParameter("id_doc", TextBox1.Text);
    rptViewer.LocalReport.Refresh();
}

private DataTable GetData(Int64 id_doc)
{
    DataTable dt = new DataTable();
    string connStr = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["logindbConnectionString"].ConnectionString;
    try
    {
        using (var conn = new SqlConnection(connStr))
        {           
            string sSQL = "select * from doc_details where id_doc=";
            SqlCommand cmd = new SqlCommand(sSQL+ TextBox1.Text, conn);
            cmd.CommandType = CommandType.Text;
            cmd.Parameters.Add("@id_doc", SqlDbType.BigInt).Value = TextBox1.Text;
            SqlDataAdapter adp = new SqlDataAdapter(cmd);
            Console.WriteLine(dt);
            adp.Fill(dt);  
        }
    }
    catch (Exception ex)
    {
        lblError.Text = ex.Message;
    }
    return dt;
}

试试这个

查询必须有一个名为字符串@id_doc的参数

字符串 sSQL = "select * from doc_details where id_doc=@id_doc";

SqlCommand cmd = new SqlCommand(sSQL, conn);

command.Parameters.Add(new SqlParameter("@id_doc", TextBox1.Text));