Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用C#问题的CrystalReport和存储过程_C#_Stored Procedures_Crystal Reports - Fatal编程技术网

使用C#问题的CrystalReport和存储过程

使用C#问题的CrystalReport和存储过程,c#,stored-procedures,crystal-reports,C#,Stored Procedures,Crystal Reports,我有一个需要生成报告的应用程序。但是,我不知道如何使用基于查询的CrystalReport生成报告。假设我只需要从数据库生成报告,其中显示select查询返回的值。我以前从来没有使用过Crystal Reports,所以我对它不熟悉 谢谢大家:) 编辑: 到目前为止,我的情况如下: ConnectionString myConnString = new ConnectionString(); string connString = myConnString.getConnectionString

我有一个需要生成报告的应用程序。但是,我不知道如何使用基于查询的CrystalReport生成报告。假设我只需要从数据库生成报告,其中显示select查询返回的值。我以前从来没有使用过Crystal Reports,所以我对它不熟悉

谢谢大家:)

编辑:

到目前为止,我的情况如下:

ConnectionString myConnString = new ConnectionString();
string connString = myConnString.getConnectionString();
SqlConnection connSearch = new SqlConnection(connString);
connSearch.Open();

SqlCommand cmdLoad = new SqlCommand("Search", connSearch);
cmdLoad.CommandType = CommandType.StoredProcedure;

cmdLoad.Parameters.Add(new SqlParameter("@AccountID", currentUser));
cmdLoad.Parameters.Add(new SqlParameter("@PeriodID", " "));
cmdLoad.Parameters.Add(new SqlParameter("@PriceID", " "));
cmdLoad.Parameters.Add(new SqlParameter("@ExpenseID", " "));
cmdLoad.Parameters.Add(new SqlParameter("@InventoryID", " "));
cmdLoad.Parameters.Add(new SqlParameter("@ProductInID", " "));
cmdLoad.Parameters.Add(new SqlParameter("@ProductOutID", " "));
cmdLoad.Parameters.Add(new SqlParameter("@PeriodMonth", periodMonth.Trim().ToUpper()));
cmdLoad.Parameters.Add(new SqlParameter("@PeriodYear", periodYear));

SqlDataReader read = cmdLoad.ExecuteReader();

DataSet ds = new DataSet();
DataTable dt = new DataTable("Results");
ds.Tables.Add(dt);
ds.Load(read, LoadOption.PreserveChanges, ds.Tables[0]);


CrystalReport1 crystal = new CrystalReport1();
crystal.SetDataSource(ds);
crystalReportViewer1.ReportSource = crystal;

connSearch.Close();
connSearch.Dispose();
然而,这里似乎有点不对劲,因为它总是产生一个异常,即报告没有指向
crystal.SetDataSource(ds)的表


有人帮我吗?:)

好吧,这并不是一个真正的答案,但我的建议是,在深入研究之前先把Crystal Reports转储掉。。。。这只是一个痛苦的世界

在HTML中创建自己的报告,导出到excel非常简单,如果需要,可以使用免费工具导出到PDF,甚至可以使用.Net图表


Net为您提供了生成报告所需的所有工具,学习曲线可能不会太大,最终的控制能力也会大大增强

Crystal Reports是一款功能强大的工具,广泛应用于世界各地的办公室。 你肯定是在帮自己熟悉它。。。如果您是,它实际上很容易使用。:)

CrystalReportViewer将生成一个用户友好的界面,使您能够将报告导出为所有常用格式

回答你的问题:

Net只为您提供了构建和查看报表的能力,就像在Crystal报表客户端中一样,只是您可以通过codebehind进行构建和查看报表

如果我是你的话,我会通读报告,先熟悉一下报告

我认为在您的案例中,错误可能与此有关,尽管您已将数据集指定为报表的数据源,但数据集中可能没有表,或者您尚未选择任何要在报表中显示的字段


在将数据集绑定到报表之前,请尝试调试数据集,并检查表是否存在。

当然,这是整个网站上唯一与CrystalReports相关的问题,因此问题标题非常独特。(对于后代:撰写本文时,问题标题为“CrystalReport问题”。)