wpf Crystal Reports(VS 2019)无法从某些计算机上的SQL Server中提取新数据?

wd2eg0qa  于 2022-11-18  发布在  SQL Server
关注(0)|答案(1)|浏览(184)

我有一个WPF控制台应用程序,用C#和VS 2019编写。
我有几个水晶报告,工作没有任何问题。
当下恍然:

  • 如果在调试模式下运行,一切正常
  • 如果我在我的电脑上运行(我在上面开发的那台),一切都很好。
  • 当我部署到使用者计算机时,报表会提取我用来建立报表的预设数据,但不会提取我在下列程式码中载入的数据:
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
    using (SqlDataAdapter adp = new SqlDataAdapter(cmd))
    {
        adp.Fill(ds, "Ledger");
        report.SetDataSource(ds.Tables["Ledger"]);  
    }
}

正如我所说,在我自己的系统上,程序正确地从SQLServer加载了新的数据。
但在另一台计算机上,它使用默认值。
同一个程序加载另一个Crystal Report(在同一个CS文件中),该报告工作正常。

  • 我试过删除整个程序并重新复制。
  • 我清除了%AppData%中的文件夹

我不知所措。
有什么建议吗?

nlejzf6q

nlejzf6q1#

从cs文件调用crystal report时,您需要传递sqldetails/credentials,因此它将连接该文件(称为运行时/动态分配数据库),否则它将连接您在设计时配置的文件。
第二个选项,需要一次,当没有运气打开报告在水晶报告,只是验证数据库从顶部菜单中的位置,你想运行。
即使有参数,也可以从c#代码中传递,如companyid或employeeid等。

public void loadReport()
    {
        rd.Load(@"C:\Users\Jeff Enad\Desktop\TEST1\Cebu Hallmark Hotel Management System\Cebu Hallmark Hotel Management System\cryReport.rpt");
        SqlConnection con = new SqlConnection(@"Data Source=.\SQLEXPRESS;Initial Catalog=dbCebuHallmark;Integrated Security=True");
        SqlDataAdapter da = new SqlDataAdapter("GetAllReport", con);
        da.SelectCommand.CommandType = CommandType.StoredProcedure;
        DataSet ds = new System.Data.DataSet();
        da.Fill(ds, "REPORT");
        rd.SetDataSource(ds);
        rd.SetParameterValue("UserPrinted", user); //This is the parameter
        crystalReportViewer1.ReportSource = rd;
        crystalReportViewer1.Refresh();
    }

请参考这一条
或者只是在谷歌搜索“c#水晶报表集数据库和参数”

相关问题