我有一个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%
中的文件夹
我不知所措。
有什么建议吗?
1条答案
按热度按时间nlejzf6q1#
从cs文件调用crystal report时,您需要传递sqldetails/credentials,因此它将连接该文件(称为运行时/动态分配数据库),否则它将连接您在设计时配置的文件。
第二个选项,需要一次,当没有运气打开报告在水晶报告,只是验证数据库从顶部菜单中的位置,你想运行。
即使有参数,也可以从c#代码中传递,如companyid或employeeid等。
请参考这一条
或者只是在谷歌搜索“c#水晶报表集数据库和参数”