在PresentationFramework.dll中发生了System.ArgumentNullException

时间:2017-09-05 08:34:48

标签: c# crystal-reports business-objects

Details of error

当我尝试打印水晶报告时会显示此错误。

  在PresentationFramework.dll中发生了

System.ArgumentNullException

我正在尝试构建一个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);
    }
}

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

Error Image

堆栈追踪:

   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:

2 个答案:

答案 0 :(得分:0)

这是一个小小的错误'在CrystalReports中,在某些情况下不显示任何有用的异常详细信息。我最近也遇到过它。

这个问题非常难以找到,因为例外基本上没有任何内容......问题也可能在报告中,而不是代码本身。
如果报告有任何问题,您将不得不调试并检查报告。

检查所有详细信息。
检查使用过的DB表和列......

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

答案 1 :(得分:0)

谢谢你每一个特别是@Blacktempe谁让我把这个问题标记为水晶报告我从这个帖子Crystal Reports - Value cannot be null. Parameter name: window找到了答案?