我有Form.cs,其中有“crystal report viewer”和“button”,当我按下按钮时,执行以下代码。但是,当我运行此代码时,会出现以下错误“应用程序已停止工作”。为什么?
private void button1_Click(object sender, EventArgs e)
{
DateTime dt = DateTime.ParseExact("2012/11/11", "yyyy/MM/dd", CultureInfo.InvariantCulture);
DataClasses1DataContext dc = new DataClasses1DataContext();
var data = (from a in dc.GetTable<Voucher>()
where a.V_Date == dt
select new { a.V_No }).ToList();
CrystalReport1 cr = new CrystalReport1();
cr.Load(@"CrystalReport1.rpt");
cr.SetDataSource(data);
crystalReportViewer1.ReportSource = cr;
}
此外我正在使用SQL Server 2012,当我创建CrystalReport1时,我选择了“OLE DB&gt;&gt; Microsoft OLE DB Provider for SQL server&gt;&gt; Integrated Security&gt;&gt; Table&gt;&gt; Table field”< / p>
编辑:
使用调试器我在此行发现错误cr.SetDataSource(Data);
An unhandled exception of type 'System.IO.FileNotFoundException' occurred in mscorlib.dll
Additional information: Could not load file or assembly 'file:///C:\Program Files (x86)\SAP BusinessObjects\Crystal Reports for .NET Framework 4.0\Common\SAP BusinessObjects Enterprise XI 4.0\win32_x86\dotnet1\crdb_adoplus.dll' or one of its dependencies. The system cannot find the file specified.
答案 0 :(得分:1)
我找到了答案,代码没有任何问题。在App.config文件中。我替换了这个
<startup >
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
用这个
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
现在一切正常。 感谢大家的帮助。
答案 1 :(得分:1)
在解决方案资源管理器中的App.config文件中,只需替换此行
即可<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
用这个
<startup useLegacyV2RuntimeActivationPolicy="true">
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5"/>
</startup>
它应该有效。