crystalReportViewer没有显示正确的值

时间:2015-02-13 15:07:38

标签: c# crystal-reports

我在水晶报表设计师版本14中创建了一个简单的报表,它由两个表组成,只是一个从一个到另一个的直接链接。当我在设计器中运行报表时,我从在Crystal报表查看器中运行报表时获得不同的值。我认为这是在某个地方兑现数据,但报告的目的不是存储数据。

        private void btnLoad_Click(object sender, EventArgs e)
    {
        reportDocu = new ReportDocument();

        TableLogOnInfo tableLogoninfo = new TableLogOnInfo();
        ConnectionInfo connectionInfo = new ConnectionInfo();
        Tables CrTables;


        reportDocu.Load(@"Inventory.rpt");

        var crTables = reportDocu.Database.Tables;
        connectionInfo.UserID = "user";
        connectionInfo.Password = "pass";

        CrTables = reportDocu.Database.Tables;
        foreach (CrystalDecisions.CrystalReports.Engine.Table CrTable in CrTables)
        {
            tableLogoninfo = CrTable.LogOnInfo;
            tableLogoninfo.ConnectionInfo = connectionInfo;
            CrTable.ApplyLogOnInfo(tableLogoninfo);
        }


        crystalReportViewer1.ReportSource = reportDocu;

        crystalReportViewer1.Update();
        crystalReportViewer1.Refresh();
    }

我查看了报告并且已经勾选(使用VS中的设计器)设计 - 默认设置 - 报告 - 在加载报告时丢弃保存的数据。

该报告使用ODBC作为i-series

我不知道报告运行时这些数据来自何处?

1 个答案:

答案 0 :(得分:1)

您应该使用数据集并将表格拖到数据集中

之后你应该尝试这段代码我总是使用这段代码: -

using System.Data;
using System.Data.SqlClient;
using CrystalDecisions.CrystalReports.Engine;

public partial class Student_Report : System.Web.UI.Page
{
    SqlConnection cn;
    // SqlCommand cmd;
    SqlDataAdapter da;
    DataSet ds;
    protected void Page_Load(object sender, EventArgs e)
    {
        string str = System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString.ToString();
        cn = new SqlConnection(str);
        cn.Open();
        da = new SqlDataAdapter("select * from StudentReg_mst", cn);
        ds = new DataSet();
        da.Fill(ds, "StudentReg_mst");
        ReportDocument rd = new ReportDocument();
        rd.Load(Server.MapPath("StudentReport.rpt"));
        rd.SetDataSource(ds);
        CrystalReportViewer1.ReportSource = rd;
        CrystalReportViewer1.DataBind();
    }

希望这会对你有所帮助