小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

數(shù)據(jù)訪問技術(shù)系列課程(10):.NET Framework 3.5中的LINQ簡介

 牛人的尾巴 2016-04-12

· LINQ 概覽

原始訪問形式

 SqlConnection conn = new SqlConnection("server=(local);database=AdventureWorks;uid=sa;pwd=password01!");
        SqlCommand comm = new SqlCommand();
        comm.Connection = conn;
        comm.CommandType = CommandType.Text;
        comm.CommandText = "SELECT * FROM HumanResources.Department";

        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter(comm);
        da.Fill(ds);

        this.GridView1.DataSource = ds.Tables[0];
        this.GridView1.DataBind();

Linq:

        PubsDataContext dc = new PubsDataContext();
        var result = from item in dc.authors
                     select item;
        this.GridView1.DataSource = result;
        this.GridView1.DataBind();

 

 

 string[] cities = {"Shanghai","Beijing","Dalian",
                               "Chengdu"};

        IEnumerable<string> places = from city in cities
                                     where city.Length > 5
                                     orderby city descending
                                     select city;

        List<string > list = places .ToList<string>();
        DataSet ds = new DataSet();
        DataTable dt = new DataTable();
        dt.Columns.Add("City", typeof(string));

        for (int i = 0 ;i<list.Count ;i++)
        {
            DataRow dr = dt.NewRow();
            dr["City"] = list[i];
            dt.Rows.Add(dr);
        }
        ds.Tables.Add(dt);

        this.GridView1.DataSource = ds;      
        this.GridView1.DataBind();

 

 

· 訪問數(shù)組

 

 string[] cities = {"Shanghai","Beijing","Dalian",
                               "Chengdu"};

 IEnumerable<string> places = from city in cities
                                     where city.Length > 5
                                     orderby city descending
                                     select city;


        this.GridView1.DataSource = places;      
        this.GridView1.DataBind();

 

· 訪問集合

 

     List<string> list = new List<string>
        {
            "ShangHai", "Beijing","Dalian", "Chengdu","shenyang"
        };


        IEnumerable<string> places = from city in list
                                     where city.Length > 5
                                     orderby city descending
                                     select city;


        this.GridView1.DataSource = places;      
        this.GridView1.DataBind();

 

Demo2:Linq to 集合

 

public class Location
{

    public string Country { get; set; }
    public string City { get; set; }
    public double DistanceFromBeijing { get; set; }

   public Location()
   { 
   }
}

 

code

   List<Location> list = new List<Location>
        {
            new Location {City="Shenyang",Country="China",DistanceFromBeijing=800},
            new Location{City="Shanghai",Country="China",DistanceFromBeijing=1000},
            new Location{City="London",Country ="UK",DistanceFromBeijing=8000}
        };
        IEnumerable<Location> places = from item in list                                    
                                     select item;
        this.GridView1.DataSource = places;      
        this.GridView1.DataBind();

前臺(tái)

   <asp:GridView ID="GridView1" runat="server" CellPadding="4" ForeColor="#333333"
            GridLines="None" AutoGenerateColumns="false">           
            <Columns>
                    <asp:BoundField HeaderText="City" DataField="City" />
                     <asp:BoundField HeaderText="Country" DataField="Country" />
                      <asp:BoundField HeaderText="Dist" DataField="DistanceFromBeijing" />
            </Columns>
        </asp:GridView>

 

 

· 查詢投影

·查詢投影(Select)

·不返回所有數(shù)據(jù)列/屬性

·修改或者轉(zhuǎn)化查詢的數(shù)據(jù)

·利用編譯器對(duì)"匿名類型"的支持查詢數(shù)據(jù)列/屬性

·生成匿名類型('a')

 

List<City> cities = City.GetLocations();

        var places = from city in cities
                     where city.DistanceFromBeijing > 3000
                     select new
                     {
                         Name = city.Name,
                         Country = city.Country,
                         DistanceFromBeijing = city.DistanceFromBeijing * 1.61
                     };

        GridView1.DataSource = places;
        GridView1.DataBind();

 

 

· 使用lambda表達(dá)式

·查詢語法是一個(gè)方便的聲明性代碼縮寫,您可以手動(dòng)編寫它:

·IEnumerable expr = names

                                 .Where(s=>s.Length==5)

                                 .OrderBy(s=>s)

                                 .Select(s=>s.ToUpper());

                                      

 

 

· 查詢操作符

調(diào)用

·普通的方式來調(diào)用擴(kuò)展方法

   ·IEnumerable<string> query = Enumerable.Where(names,s => s.Length < 6);

· C#語言允許我們使用如下的方式來調(diào)用擴(kuò)展方法:

    ·IEnumerable<string> query = names.Where(s=> s.Length < 6);

 

 Demo:利用Lambda表達(dá)式

        List<Location> list = new List<Location>
        {
            new Location {Name="Shenyang",Country="China",DistanceFromBeijing=800},
            new Location{Name="Shanghai",Country="China",DistanceFromBeijing=1000},
            new Location{Name="London",Country ="UK",DistanceFromBeijing=8000}
        };

        var places = list.Where(city => city.DistanceFromBeijing < 1500)
            .Select(city => new { city.Name, city.Country, DistanceFromBeijing = city.DistanceFromBeijing });


        //IEnumerable<Location> places = from item in list                                    
        //                             select item;
        this.GridView1.DataSource = places;
        this.GridView1.DataBind();

 

------------------

 

Demo:

 

 List<City> list = new List<City>
        {
            new City {Name="Shenyang",Country="China",DistanceFromBeijing=800},
            new City{Name="Shanghai",Country="China",DistanceFromBeijing=1000},
            new City{Name="London",Country ="UK",DistanceFromBeijing=8000}
        };

        //IEnumerable<Location> places = from item in list                                    
        //                             select item;


        //1.
        //var places = list.Where(city => city.DistanceFromBeijing < 1500)
        //    .Select(city => new { city.Name, city.Country, DistanceFromBeijing = city.DistanceFromBeijing });
      
        //2.利用匿名方法       
        //var places = list.Where(delegate(City city) { return (city.DistanceFromBeijing < 1500); })
        //    .Select(city => new { city.Name, city.Country, DistanceFromBeijing = city.DistanceFromBeijing });

 

       //3.

        var places = list.Where(new Func<City, bool>(Predict))
            .Select(city => new { city.Name, city.Country, DistanceFromBeijing = city.DistanceFromBeijing });
               
        this.GridView1.DataSource = places;
        this.GridView1.DataBind();

 

   public bool Predict(City city)
    {
        return city.DistanceFromBeijing < 1500;
    }

 

--------------------------

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多