Linq体验(二)

简介: SelfDataDataContext cc = new SelfDataDataContext(); select 用法 protected void Button1_Click(object sender, EventArgs e)     {         //select 的用法 ...

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/

转载请注明:博客园

目录
相关文章
|
.NET 开发框架 数据格式
|
XML .NET 程序员