Crystal 报告不显示数据库中的记录,只显示列

Crystal Reports is not showing records from the database, only the columns

我正在尝试显示在数据库中创建的 table 之一的记录。当我 运行 应用程序时,它加载但我只能看到没有记录的列(记录存在)。 在我的设计模式中,我放置了 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 中有上面的代码。我的 table 叫 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;
                }
            }
        }
    }


}

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

  1. 尝试调试,一步一步..你的dsSalarii有一些数据吗?如果是,请继续下一步
  2. 您必须确保 DataTable 的名称(在您的例子中:"DataTable1")与 CrystalReport 中的名称相同,如果是,请继续下一步
  3. 仅将数据源设置为报表是不够的,您必须将数据传递给报表:

    ds.WriteXml(XmlDataPath)
    

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

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