Crystal Reports не показывает записи из базы данных, только столбцы - PullRequest
0 голосов
/ 11 декабря 2018

Я пытаюсь отобразить записи из одной из таблиц, созданных в базе данных.Когда я запускаю приложение, оно загружается, но я вижу только столбцы без записей (записи существуют).В моем режиме разработки я поместил 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;
                }
            }
        }
    }


}

Я очень новичок в этом и следовал инструкциям во время разработки.Мне нужна помощь, это очень важный проект в школе, и я буду признателен за любую помощь, которую я могу получить.

1 Ответ

0 голосов
/ 14 декабря 2018
  1. Попробуйте выполнить отладку, шаг за шагом ... есть ли в вашем dsSalarii какие-либо данные?если да, перейдите к следующему шагу
  2. Необходимо убедиться, что имя DataTable (в вашем случае: «DataTable1») одинаково в CrystalReport, если да, перейдите к следующему шагу
  3. Недостаточно только установить DataSource для отчета, вы должны передать данные в отчет:

    ds.WriteXml(XmlDataPath)
    

сохраните ваш набор данных как XML, теперь вы можете добавить сгенерированный XML вCrystal Report, поэтому откройте Crystal Report, выберите «База данных»> «Эксперт по базам данных»> «Создать новое соединение»> ADO.NET (xml) и выберите путь к сгенерированному xml

. Следующий шаг - размещение полей базы данных в отчете

.
...