LinQ to sql 各种数据库查询方法

1、多条件查询:
并且 &&
或者 ||

var list = con.car.Where(r => r.code == "c014" || r.oil == 8.2m);


2、模糊查询
1.模糊
var list = con.car.Where(r => r.name.Contains("AT"));
2.开头
var list = con.car.Where(r => r.name.StartsWith("皇冠"));
3.结尾
var list = con.car.Where(r => r.name.EndsWith("版"));


3、统计查询
1.总个数
//var count = con.car.Count();
2.最大值
//var Max = con.car.Max(r => r.price);
3.最小值
//var Min = con.car.Min(r => r.price);
4.平均值
//var avg = con.car.Average(r => r.price);

4、分页查询
跳过,获取
int count = 5; //先定义一个变量用作每页显示的条数
int pagecount = 0;

var list = con.car.Skip(pagecount * count 跳过多少条).Take(count取多少条);
一上来pagecount是0,它乘以条数就是跳过多少条,第一次跳过0条,取count条,就是第一页显示的内容,当pagecount变成1,
第二次就是跳过count条,再取条过后的count条,也就是跳过了第一页显示的条数,再取跳过第一页后的这些条数,则就是下一页


5、排序查询
升序
//var list = con.car.OrderBy(r => r.price);//取数据库表中数值类型的一列进行排序
降序
//var list = con.car.OrderByDescending(r => r.price);

去重:
var aaa = con.car.Select(r => r.oil).Distinct();

6、外键显示
return this.brand1.brand_name;//在有主外键关系的表中,查询外键表时,可以点出主键表中任何一列的值,同样主键表如果是
其他表的外键,还可以继续点

7、组合查询
交集
var list = list1.Intersect(list2).Intersect(list3);
-------------------------------------------------------------
var list1 = con.car.AsQueryable();
var list2 = con.car.AsQueryable();
var list3 = con.car.AsQueryable();

if (TextBox1.Text.Trim().Length > 0)
{
list1 = list1.Where(r => r.name.Contains(TextBox1.Text.Trim()));
}
if (TextBox2.Text.Trim().Length > 0)
{
list2 = list2.Where(r => r.brand1.brand_name.Contains(TextBox2.Text.Trim()));
}
if (TextBox3.Text.Trim().Length > 0)
{
list3 = list3.Where(r => r.oil == Convert.ToDecimal(TextBox3.Text.Trim()));
}

var list = list1.Intersect(list2).Intersect(list3);

Repeater1.DataSource = list;
Repeater1.DataBind();

原文地址:https://www.cnblogs.com/zyg316/p/5747597.html