簡體   English   中英

選擇收藏-C#

[英]Select on collection - C#

說我有一個SQL查詢

SELECT fname, lname, dob, ssn, address1, address2, zip, phone,state from users

現在說記錄現在在字典庫或強類型集合中。

我有一個網格視圖控件,我想將其綁定到我的收藏集,但我只想顯示fname,lname,dob和ssn,而不顯示其他列。

有沒有一種簡單的方法可以提取列,然后綁定到提取的項目? 不確定LINQ在這里是否有幫助。

這是一個測試項目,因為我逐漸熟悉VS-2008的網絡世界

也許LINQ和一個匿名類可以為您解決問題。

from user in UserCollection
select new { FirstName=user.fname, LastName=user.lname, Dob=user.dob, SSN=user.ssn }

您可以指定要在gridview中顯示的列。 只需在aspx頁面中指定所需的列即可:

<asp:GridView ID="gvwExample" runat="server" AutoGenerateColumns="False" >
<columns>
<asp:BoundField DataField="firstname" HeaderText="First Name" />
<asp:BoundField DataField="lastname" HeaderText="Last Name" />
<asp:BoundField DataField="hiredate" HeaderText="Date Hired" />
</columns>
</asp:GridView> 

您可以使用linq返回匿名類型(AKA元組)。 該元組將僅包含您要查找的屬性。 然后,您可以將網格綁定到該集合。 Google C#中的匿名類型或元組,以了解我的意思。

假設您的數據采用IENumerable <T>的某種形式:

var filteredUser = from U in Users
    select new { U.fname, U.lname, U.dob, U.SSN };

現在,FilteredUser是僅具有這些屬性的集合。

這是關於LINQ To Objects的很酷的事情的一部分。 您不需要使用LINQ-To-SQL來獲取數據,您可以使用任何您想填充初始問題的內容,然后使用Linq-To-Objects將其修剪到內存中。

您可以根據需要使用linq。 如果為數據創建了dbml,則可以使用LINQ直接從db中提取記錄(或者如果集合是IEnumerable),如下所示:

Dim _records = From user in users _
               Select New With {.FirstName = user.fname,_
               .Lastname = user.lname,.dob = user.dob,.ssn = user.ssn}

{gridcontrol}.datasource = _records

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM