元素null错误

我得到这个错误,不知道为什么。 请帮忙,这很紧急。

UPDATE

if (flights.Count() >= 1)
        {
            int count = flights.Count();
            lblNumResults.Text = count.ToString();
            gvAvailableFlights.DataSource = flights;
            gvAvailableFlights.DataBind();
        }

'/ WebSite3'应用程序中的服务器错误。 值不能为空。 参数名称:element说明:执行当前Web请求期间发生未处理的异常。 请查看堆栈跟踪以获取有关该错误的更多信息以及源代码的位置。

异常详细信息:System.ArgumentNullException:值不能为空。 参数名称:元素

源错误:

生成此未处理异常的源代码只能在调试模式下编译时显示。 要启用此功能,请执行以下其中一个步骤,然后请求网址:

  • 在生成错误的文件顶部添加一个“Debug = true”指令。 例:

    <%@ Page Language =“C#”Debug =“true”%>

  • 要么:

    2)将以下部分添加到应用程序的配置文件中:

    请注意,第二种技术会导致给定应用程序中的所有文件都以调试模式进行编译。 第一种技术只会导致在调试模式下编译该特定文件。

    重要提示:在调试模式下运行应用程序会产生内存/性能开销。 在部署到生产场景之前,应确保应用程序已禁用调试。

    堆栈跟踪:

    [ArgumentNullException:值不能为空。 参数名称:元素]
    System.Xml.Linq.XElement.op_Explicit(XElement元素)+116474
    searchresult.b__1d(XElement f)+64
    System.Linq.WhereSelectEnumerableIterator 2.MoveNext() +151 System.Linq.Enumerable.Count(IEnumerable 1 source)+201
    searchresult.FillAvailableFlightsGridView()+721 searchresult.Page_Load(Object sender,EventArgs e)+37
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e)+14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e)+35
    System.Web.UI.Control.OnLoad(EventArgs e)+91
    System.Web.UI.Control.LoadRecursive()+74 System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)+2207

    版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.1


    在你的代码中你有一个名为FillAvailableFlightsGridView函数,并且在那个函数中你调用了一些null的集合的Count()

    在调用Count()之前,检查它是否为null,在这种情况下,假定长度为零或做任何你想要的操作。

    例如:

    int myCount = 0;
    if (myCollection != null)
       myCount = myCollection.Count();
    

    编辑:你的情况下优化的代码将是:

    int flightsCount = (flights == null) ? 0 : flights.Count();
    if (flightsCount >= 1)
    {
        lblNumResults.Text = flightsCount.ToString();
        gvAvailableFlights.DataSource = flights;
        gvAvailableFlights.DataBind();
    }
    

    不需要两次调用Count() ,因为您看到它包含可能很重的内部代码。


    改变这个:

    if (flights.Count() >= 1)
            {
                int count = flights.Count();
                lblNumResults.Text = count.ToString();
                gvAvailableFlights.DataSource = flights;
                gvAvailableFlights.DataBind();
            }
    

    为此:

     if (flights != null && flights.Count() >= 1)
        {
            lblNumResults.Text = (string)flights.Count();
            gvAvailableFlights.DataSource = flights;
            gvAvailableFlights.DataBind();
        }
    
    链接地址: http://www.djcxy.com/p/27983.html

    上一篇: element null error

    下一篇: "Use the new keyword to create an object" instance error