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;
}
}
}
}
}
我对此很陌生,在开发过程中遵循了教程。我需要帮助,这是学校的一个非常重要的项目,我会很感激我能得到的每一个帮助。
- 尝试调试,一步一步..你的dsSalarii有一些数据吗?如果是,请继续下一步
- 您必须确保 DataTable 的名称(在您的例子中:"DataTable1")与 CrystalReport 中的名称相同,如果是,请继续下一步
仅将数据源设置为报表是不够的,您必须将数据传递给报表:
ds.WriteXml(XmlDataPath)
将您的数据集保存为 xml,现在您可以将生成的 xml 添加到 Crystal 报告中,因此打开 Crystal 报告,转到数据库 > 数据库专家> 创建新连接> ADO.NET(xml) 并选择生成的路径 xml
下一步是将数据库字段放入报告
我正在尝试显示在数据库中创建的 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;
}
}
}
}
}
我对此很陌生,在开发过程中遵循了教程。我需要帮助,这是学校的一个非常重要的项目,我会很感激我能得到的每一个帮助。
- 尝试调试,一步一步..你的dsSalarii有一些数据吗?如果是,请继续下一步
- 您必须确保 DataTable 的名称(在您的例子中:"DataTable1")与 CrystalReport 中的名称相同,如果是,请继续下一步
仅将数据源设置为报表是不够的,您必须将数据传递给报表:
ds.WriteXml(XmlDataPath)
将您的数据集保存为 xml,现在您可以将生成的 xml 添加到 Crystal 报告中,因此打开 Crystal 报告,转到数据库 > 数据库专家> 创建新连接> ADO.NET(xml) 并选择生成的路径 xml
下一步是将数据库字段放入报告