System.ArgumentNullException' 发生在 PresentationFramework.dll

System.ArgumentNullException' occurred in PresentationFramework.dll

当我尝试打印 crystal 报告时出现此错误。

System.ArgumentNullException' occurred in PresentationFramework.dll

我正在尝试构建一个 WPF 应用程序, 我以另一种形式使用了相同的代码,并且在那里工作正常。 但在此页面显示错误。

private void btnReciept_Click(object sender, RoutedEventArgs e)
{
    try {
        if (txtComplainNo.Text == "")
        {
            ModernDialog.ShowMessage("Enter Complain Number","ErrorFound", MessageBoxButton.OK);
        }
        else
        {
            InsertFinalReport();
            var ConString = System.Configuration.ConfigurationManager.ConnectionStrings["GalaxyApp.Properties.Settings.ConnString"].ConnectionString;
            string CmdString = string.Empty;
            SqlCommand cmd = new SqlCommand();
            SqlDataAdapter MyDA = new SqlDataAdapter();
            DataSet myDS = new DataSet(); 
            // DataSet1 myDS = new DataSet1();
            SqlConnection con = new SqlConnection(ConString);
            cmd.Connection = con;
            cmd.CommandText = "Select * from FinalReport where ComplainNo='" + Convert.ToInt32(txtComplainNo.Text) + "'";
            cmd.CommandType = System.Data.CommandType.Text;
            MyDA.SelectCommand = cmd;
            MyDA.Fill(myDS, "FinalReport");
            // FinalReportDS myDS = new FinalReportDS();
            // myDS.EnforceConstraints=false;
            if (myDS.Tables[0].Rows.Count == 0)
            {
                ModernDialog.ShowMessage("EmptyDataSet", "ErrorFound", MessageBoxButton.OK);
            }
            else
            {
                CourierReport1 rpt = new CourierReport1();
                rpt.SetDataSource(myDS);
                FinalReportViewer FRV = new FinalReportViewer();
                FRV.ReportViewer.ViewerCore.ReportSource = rpt;
                FRV.Show();
            }
            //Report frm1 = new Report();
            //frm1.ReportViewer1.ViewerCore.ReportSource = rpt;
            //frm1.Show();
            ///*
            //Form1 mform = new Form1();
            //mform.ShowReport(Convert.ToInt32(txtComplainNo.Text));
            //mform.Show();
            //*/
        }
    }
    catch(Exception ex)
    {
        ModernDialog.ShowMessage(ex.Message, "ErrorFound", MessageBoxButton.OK);
    }
}

我尝试了所有替代代码。 请任何人都可以帮我找到这个错误的原因

堆栈跟踪:

   at System.Windows.Interop.WindowInteropHelper..ctor(Window window)
   at System.Windows.MessageBox.Show(Window owner, String messageBoxText, String caption, MessageBoxButton button, MessageBoxImage icon)
   at SAPBusinessObjects.WPF.Viewer.ViewerCore.HandleExceptionEvent(Object eventSource, Exception e, Boolean suppressMessage)
   at SAPBusinessObjects.WPF.Viewer.ReportAlbum.OnHandleException(Exception e)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.DispatcherOperation.InvokeImpl()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at MS.Internal.CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Windows.Threading.DispatcherOperation.Invoke()
   at System.Windows.Threading.Dispatcher.ProcessQueue()
   at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
   at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
   at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
   at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
   at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
   at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
   at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
   at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
   at System.Windows.Application.RunDispatcher(Object ignore)
   at System.Windows.Application.RunInternal(Window window)
   at GalaxyApp.App.Main() in D:\GoogleDrive\extra\GalaxyApp\GalaxyApp\obj\Debug\App.g.cs:line 0
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone()
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
Stack Trace:

CrystalReports 在某些情况下不显示任何有用的异常详细信息有点 'bug'。我最近也遇到了。

这个问题异常难找,因为异常基本上什么都没说...问题也可能出在报告中,而不是代码本身。
遗憾的是,如果有任何问题,您将不得不调试并检查您的报告。

检查所有详细信息。
检查使用的数据库表和列...

我遇到了问题,子报表有几个参数,父报表也有。但是这些并没有自动传递给子报表。有必要为报告提供所有必需的参数。也许这对你也有帮助。遗憾的是,没有报告、代码和环境,很难说清楚。

谢谢大家 特别是@Blacktempe 让我把这个问题标记为 crystal 报告 我从这个帖子 Crystal Reports - Value cannot be null. Parameter name: window?

找到了答案