SelfDataDataContext cc = new SelfDataDataContext();
select 用法
protected void Button1_Click(object sender, EventArgs e)
{
//select 的用法
//簡單用法,不帶條件,查詢 姓名,薪金
var q1 = from p in cc.userss select p;//傳回全部列
var q2 = from p in cc.userss select p.name;//傳回單一列
//當顯示多列時,要用匿名類型
var q3 = from p in cc.userss select new {p.name,p.salary };
//列别名用法(注意:列名不加引号)
var q4 = from p in cc.userss select new {namee=p.name,薪金=p.salary };
//列别名用法之列組合,職位+姓名=那個誰(例如:姓氏+名字=姓名)
var q5 = from p in cc.userss select new { 那個誰=p.description+p.name, 薪金 = p.salary };

//查詢結果 運算(例如:女好漢薪金*3倍+100元補助(節日加班))
var q6 = from p in cc.userss where p.sex=="女" select new { 姓名=p.name,現在的薪金=p.salary,節日加班薪金=p.salary*3+100};
//同上,傳回保安職業,并在結果集中過濾選擇 1700以上薪金的人員(>1700)的薪為0
//這裡的過濾不是條件查詢,而是對過濾出來的資料進行條件選擇。
var q7 = from p in cc.userss where p.description == "保安" select new { p.name,salary=(p.salary>1700?0:p.salary)};
//以上在多列時,采用的是匿名類型,以下是顯示的定義确定類型
//注意不要顯示的構造cc.userss類型
var q8 = from p in cc.userss select new Users { UserName = p.name, UserJob = p.description };
//匿名類型裡的匿名類型,感覺這點太靈活了。
//查詢結果為,姓名{職務,薪金,性别},每一個姓名包含三項屬性:職務,薪金,性别
var q9 = from p in cc.userss select new {
p.name,
userInfo=new {p.description,p.salary,p.sex}
};
//在查詢中調用類方法(這點很強大,比如在sql2000中就不能switch分支。)
//按男女性别區分,女的好漢姓名後加“女英雄”;男的好漢姓名後加“男好漢”
var q10 = from p in cc.userss
select new
{
name=AddSuffixes(p.name,p.sex),p.sex,p.description
};
GridView1.DataSource =q10.ToList();
GridView1.DataBind();
}
private string AddSuffixes(string strName,string strSex)
switch (strSex)
{
case "男":
return strName + "男好漢";
case "女":
return strName + "女英雄";
default:
return "分不出男女";
}
備注:
有點表别名的意思。通過練習,會越來越熟練,并深入了解和應用Linq.
部落格園大道至簡
http://www.cnblogs.com/jams742003/轉載請注明:部落格園