zoukankan      html  css  js  c++  java
  • Linq体验(二)

    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/

    转载请注明:博客园

  • 相关阅读:
    算法14-----位运算操作(1)
    算法13------集合所有的子集或者字符串所有子串
    21、缓存设计
    20、内存溢出(Out of Memory)
    19、内容共享
    14、数据传输更省电
    15、自定义Content Provider
    16、编写适应多个API Level的APK
    17、屏幕适配,多语言支持,手机类型适配
    18、不同平台版本
  • 原文地址:https://www.cnblogs.com/jams742003/p/1574078.html
Copyright © 2011-2022 走看看