linq分頁組合查詢


一、linq高級查

1.模糊查(字符串包含)

1  public List<User> Select(string name)
2     {
3         return con.User.Where(r =>r.UserName.Contains(name)).ToList();
4     }

2.查開頭(StartsWith,以XX開頭)

 public List<User> Select(string name)
    {
        return con.User.Where(r => r.UserName.StartsWith(name)).ToList();
    }

3.查結尾

 public List<User> Select(string name)
 {
        return con.User.Where(r => r.UserName.EndsWith(name)).ToList();
    }

4.查出來的數組長度(個數)

clist.Count()

5.最大值:Max(r => r.price);

 public decimal? SelectMax()
    {
        return con.car.Max(r => r.price);
    }

6.最小值:Min(r => r.price);

public decimal? SelectMin()
    {
        return con.car.Min(r => r.price);
    }

7.平均值:Average(r => r.price);

public decimal? SelectAvg()
    {
        return con.car.Average(r => r.price);
    }

8.求和:Sum(r => r.price);

 public decimal? SelectSum() { return con.car.Sum(r => r.price); } 

9.排序:

1、OrderBy 按升序對值進行排序。 
2、OrderByDescending 按降序對值進行排序
3、ThenBy 按升序執行次要排序。 
4、ThenByDescending 按降序執行次要排序。
(1)升序:OrderBy(r => r.price)

1   public List<car> orderBy()
2     {
3         return con.car.OrderBy(r => r.price).ToList();
4     }

(2)降序:OrderByDescending(r => r.price)

  public List<car> orderBy()
    {
      
        return con.car.OrderByDescending(r => r.oil).ToList();
    }

二、分頁與組合查詢

1.分頁

1 public List<User> Select(int count, int number)
2     {
3         return con.User.Skip(count * (number - 1)).Take(count).ToList();
4     }//這里的number是當前頁數,count是每頁的數據條數。skip,除去前多少條數據剩下的數據。take,取幾條數據,這句話就是查詢除去前多少條之后的剩下的數據的前多少條數據
復制代碼
 public int MaxPageNumber()
    {
        List<User> list = new UserData().Select();
        double nu = list.Count / (Pagecount * 1.0);//不要忘了取上線
        int num = Convert.ToInt32(Math.Ceiling(nu));
        return num;
    }//總頁數
復制代碼
復制代碼
   void btn_next_Click(object sender, EventArgs e)
    {
        int NowNumber = Convert.ToInt32(Label2.Text) + 1;//下一頁的頁數
        if (NowNumber > MaxPageNumber())
        {
            return;
        }
        Repeater1.DataSource = new UserData().Select(Pagecount, NowNumber);
        Repeater1.DataBind();

        Label2.Text = NowNumber.ToString();
        DropDownList2.SelectedValue = NowNumber.ToString();

    }//下一頁
復制代碼
 
 
2. 組合查詢
void Button2_Click(object sender, EventArgs e)
    {
    using(WebDataContext con=new WebDataContext())//using比較適合用於個人開發,當花括號里的內容結束后內存自動釋放,節省資源
{
var All = con.User.AsEnumerable();//AsEnumerale也是一個集合,不會占用系統空間,相當於只是把查詢字符串給拼接起來,准備好,
當執行ToList時才會進行查詢
if (TextBox1.Text.Trim().Length > 0)//說明這里填寫了內容 { var namelist = con.User.Where(r => r.UserName.Contains(TextBox1.Text.Trim())); All = All.Intersect(namelist); } if (tb_sex.Text.Trim() == "" || tb_sex.Text.Trim() == "") { var sexlist = con.User.Where(r =>Convert.ToBoolean(r.Sex)==(tb_sex.Text.Trim()==""?true:false)); All = All.Intersect(sexlist); } if (tb_age.Text.Trim().Length > 0) { int nowyear = DateTime.Now.Year; try { int age= Convert.ToInt32(tb_age.Text.Trim()); int g = nowyear- age; DateTime d = Convert.ToDateTime(g.ToString() + "-1-1"); if (DropDownList3.SelectedValue == ">=") { var agelist = con.User.Where(r => Convert.ToDateTime(r.Birthday) >= d); All = All.Intersect(agelist); } else { DateTime dd = Convert.ToDateTime(g.ToString() + "-12-31"); var agelist = con.User.Where(r => Convert.ToDateTime(r.Birthday) <= dd); All = All.Intersect(agelist); } } catch{ } } Repeater1.DataSource = All; Repeater1.DataBind(); } }

分頁組合查(以下一頁為例)

 void LinkButton2_Click(object sender, EventArgs e)//下一頁
    {
        using (renuanDataContext ren = new renuanDataContext())
        {
            var all = ren.Users.AsEnumerable();
            if (chayhmtext.Text.Trim().Length > 0)
            {
                var namelist = ren.Users.Where(r => r.Uname.Contains(chayhmtext.Text.Trim()));
                all = all.Intersect(namelist);
            }
            if (chasexdrop.Text.Trim().Length > 0)
            {
                var sexlist = ren.Users.Where(r => r.Usex.ToString() == chasexdrop.SelectedValue);
                all = all.Intersect(sexlist);
            }
            if (chanationdrop.Text.Trim().Length > 0)
            {
                var nationlist = ren.Users.Where(r => r.Unation.ToString() == chanationdrop.Text);
                all = all.Intersect(nationlist);
            }
            count2.Text = Math.Ceiling(all.Count() / (countnum * 1.0)).ToString();//總頁數
            int page= Convert.ToInt32(count1.Text) + 1;//點擊之后的頁數
           if(Convert.ToInt32(count1.Text)< Convert.ToInt32(count2.Text))//判斷是否為最后一頁
           {
              count1.Text = page.ToString();
              Repeater1.DataSource = all.Skip(countnum * (Convert.ToInt32(count1.Text) - 1)).Take(countnum).ToList();
         
              Repeater1.DataBind();
           }//頁數
        }//using
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM