gridview的数据绑定使用LINQ查询错误 [英] gridview databind with linq query errors
问题描述
我试图来填充通过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屋!