gridview的数据绑定使用LINQ查询错误 [英] gridview databind with linq query errors

查看:95
本文介绍了gridview的数据绑定使用LINQ查询错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图来填充通过LINQ的对象列表的GridView(我只想显示与特定属性的特定对象)。

我的错误...


  

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


  
  

源错误:


  
  

1364行:returnInvoices =(列表)会议[发票];
  1365线:
  1366行:VAR partInvoices =从我在returnInvoices
  1367行:其中i.PartNo == PARTNO
  1368行:选择新的源文件:
  C:\\的Inetpub \\ wwwroot的... \\ Form.aspx.cs行:1366


 保护无效DoInvoicePopUp(字符串PARTNO)
{
    清单<发票和GT; returnInvoices =(列表<发票和GT;)会议[发票];    VAR partInvoices从我returnInvoices =
                       其中,i.PartNo == PARTNO
                       新选择
                       {
                           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;
}

我不知道我在做什么错。列表中有200多个对象,所以怎么能说是空?


解决方案

看起来像会话[发票]为空,如果它不应该是零,你需要看看这是为什么hapening,如果是罚款,它为空只使用作为关键字,而不是铸造例如

 列表<发票和GT; returnInvoices =会话[发票]作为名单<发票取代;

会话[发票]可能仍然为空,但它不会扔在施放空裁判例外,它只是你只会看到returnInvoices为空,然后你就可以检查并处理。

修改

我离开预订购上述一般的建议,但实际上从堆栈跟踪它看起来像PARTNO为null。

I am trying to populate a gridview with a list of objects via linq (I only want to show certain objects with a specific property).

I get the error...

Exception Details: System.ArgumentNullException: Value cannot be null. Parameter name: source

Source Error:

Line 1364: returnInvoices = (List)Session["Invoices"]; Line 1365: Line 1366: var partInvoices = from i in returnInvoices Line 1367: where i.PartNo == partNo Line 1368: select new Source File: c:\inetpub\wwwroot...\Form.aspx.cs Line: 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;
}

I'm not sure what I'm doing wrong. The List has 200+ objects in it, so how can it be null?

解决方案

Looks like Session["Invoices"] is null, if it should never be null you need to look at why this is hapening, if it is fine for it to be null just use the as keyword instead of casting e.g.

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

Session["Invoices"] might still be null but it won't throw the null ref exception on the cast, it will just you will just see that returnInvoices is null, which you can then check for and handle.

EDIT

I willl leave the above as general advice but actually from the stack trace it looks like partNo is null.

这篇关于gridview的数据绑定使用LINQ查询错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆