【问题标题】:Crystal Reports is not showing records from the database, only the columnsCrystal Reports 不显示数据库中的记录,只显示列
【发布时间】:2018-12-11 11:57:40
【问题描述】:

我正在尝试显示数据库中创建的其中一个表中的记录。当我运行应用程序时,它会加载,但我只能看到没有记录的列(记录存在)。 在我的设计模式中,我放置了 CrystalReportViewer,并创建了 CrystalReport 的源代码。

我正在使用 VS 2015 和 CrystalReports v 13.0.8

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="WebForm.aspx.cs" Inherits="WebForm" %>

<%@ Register Assembly="CrystalDecisions.Web, Version=13.0.2000.0, Culture=neutral, PublicKeyToken=692fbea5521e1304" Namespace="CrystalDecisions.Web" TagPrefix="CR" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script type="text/javascript" src="/crystalreportviewers13/js/crviewer/crv.js"></script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="True" GroupTreeImagesFolderUrl="" Height="1202px" ReportSourceID="CrystalReportSource1" ToolbarImagesFolderUrl="" ToolPanelView="None" ToolPanelWidth="200px" Width="1104px" />
        <CR:CrystalReportSource ID="CrystalReportSource1" runat="server">
            <Report FileName="CrystalReport2.rpt">
            </Report>
        </CR:CrystalReportSource>
    </div>
    </form>
</body>
</html>

在我的 .cs 中,我有上面的代码。我的桌子叫 Salarii

using System;
using System.Collections.Generic;
using System.Data;
using System.Configuration;
using System.Data.SqlClient;
using CrystalDecisions.CrystalReports.Engine;

public partial class WebForm : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        ReportDocument crystalReport = new ReportDocument();
        crystalReport.Load(Server.MapPath("~/CrystalReport.rpt"));
        DataSet dsSalarii = GetData("select * from Salarii");
        crystalReport.SetDataSource(dsSalarii);
        CrystalReportViewer1.ReportSource = crystalReport;
    }

     private DataSet GetData(string query)
    {
        string conString = ConfigurationManager.ConnectionStrings["MyDbConnectionString"].ConnectionString;              
        SqlCommand cmd = new SqlCommand(query);
        using (SqlConnection con = new SqlConnection(conString))
        {
            using (SqlDataAdapter sda = new SqlDataAdapter())
            {
                cmd.Connection = con;

                sda.SelectCommand = cmd;
                using (DataSet dsSalarii = new DataSet())
                {
                    sda.Fill(dsSalarii, "DataTable1");
                    return dsSalarii;
                }
            }
        }
    }


}

我对此很陌生,并且在开发过程中遵循了教程。我需要帮助,这是学校里一个非常重要的项目,我会很感激我能得到的每一个帮助。

【问题讨论】:

    标签: asp.net visual-studio crystal-reports


    【解决方案1】:
    1. 尝试逐步调试.. 你的 dsSalarii 有一些数据吗?如果是,请进行下一步
    2. 您必须确保DataTable的名称(在您的情况下为“DataTable1”)在CrystalReport中是相同的,如果是,则进行下一步
    3. 仅将DataSource设置为报表是不够的,必须将数据传递给报表:

      ds.WriteXml(XmlDataPath)
      

    将您的数据集保存为 xml,现在您可以将生成的 xml 添加到 Crystal Report,因此打开 Crystal Report,转到数据库> 数据库专家> 创建新连接> ADO.NET(xml) 并选择生成 xml 的路径

    下一步是将数据库字段放入报告中

    【讨论】:

      猜你喜欢
      • 2010-10-25
      • 2013-08-15
      • 1970-01-01
      • 1970-01-01
      • 2017-05-25
      • 2012-05-03
      • 1970-01-01
      • 1970-01-01
      • 2011-04-20
      相关资源
      最近更新 更多