【问题标题】:gridview databind with linq query errors带有 linq 查询错误的 gridview 数据绑定
【发布时间】:2012-12-13 14:24:32
【问题描述】:

我正在尝试通过 linq 使用对象列表填充网格视图(我只想显示具有特定属性的某些对象)。

我得到了错误...

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

来源错误:

第 1364 行:returnInvoices = (List)Session["Invoices"]; 第 1365 行: 第 1366 行:var partInvoices = from i in returnInvoices 第 1367 行:其中 i.PartNo == partNo 第 1368 行:选择新的源文件: c:\inetpub\wwwroot...\Form.aspx.cs 行:1366

protected void DoInvoicePopUp(string partNo)
{
    List<Invoice> returnInvoices = (List<Invoice>)Session["Invoices"];

    var partInvoices = from i in returnInvoices
                       where i.PartNo == partNo
                       select new
                       {
                           i.InvoiceID,
                           i.InvoiceNo,
                           i.InvoiceLine,
                           i.InvoiceDate,
                           i.OrderNo,
                           i.OrderLine,
                           i.OrderRel,
                           i.OrderLineItem,
                           i.OrderLineQty,
                           i.CustomerPO,
                           i.Serialized
                       };

    GridView3.DataSource = partInvoices;
    GridView3.DataBind();

    pnlBlanket.Visible = pnlInvoiceSearch.Visible = true;
}

我不确定我做错了什么。 List里面有200+个对象,怎么可能是null呢?

【问题讨论】:

    标签: c# asp.net linq list object


    【解决方案1】:

    看起来 Session["Invoices"] 是空的,如果它永远不应该是空的,你需要看看为什么会这样,如果它是空的就可以使用 as 关键字而不是强制转换例如

    p>
    List<Invoice> returnInvoices = Session["Invoices"] as List<Invoice>;
    

    Session["Invoices"] 可能仍然为 null,但它不会在强制转换时抛出 null ref 异常,它只会让您看到 returnInvoices 为 null,然后您可以检查并处理它。

    编辑

    我会将上述内容作为一般建议,但实际上从堆栈跟踪来看,partNo 似乎为空。

    【讨论】:

    • 感谢您的指点!原来有一些代码使会话列表为空。这一点是固定的,但我现在有另一个问题,我将开始一个新的帖子。 :)
    【解决方案2】:
    GridView3.DataSource = partInvoices.ToList()
    

    【讨论】:

    • 这只会强制 partInvoices 更早地枚举给出相同的错误,但在该行而不是在 GridView 是数据绑定时。
    猜你喜欢
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-25
    相关资源
    最近更新 更多