例子剖析与选择语句
一、剖析下面的例子
public ActionResult SelectUserType(int UserID)
{ //多表查询–结合sql写法
var listUserType = (from tbUser in myModel.PW_User
join tbUserRoleDetail in myModel.PW_UserRoleDetail on tbUser.UserID equals tbUserRoleDetail.UserID
where tbUser.UserID == dbUser.UserID && tbUserType.typeClass == strUserTypeClass
select new
{
id=tbUserType.UserTypeID,
text=tbUserType.UserType
}).ToList();
return Json(listUserType, JsonRequestBehavior.AllowGet);
}
1、 函数结构(函数又名“方法”):函数是由函数访问权限修饰符(public)、返回值(ActionResult)、函数名(SelectUserType)、形参(int UserID)、函数体(形参后的花括号里面的内容)等构成的;
2、“=”符号与“ == ”符号的区别:
(1)“=”符号是赋值运算符。它是把“=”符号右边的实际的值(实参)赋值给左边的变量(未知数、字段);例如:text=tbUserType.UserType这句代码的意思就是把tbUserType.UserType赋值给text。
(2)“ == ”符号是是否全等判断运算符。相当于数学中的等于。例如:tbUser.UserID == dbUser.UserID这句代码的意思就是tbUser.UserID等于dbUser.UserID。
3、“&&”符号是and运算符,它左右两边的条件是要同时满足的。例如:where tbUser.UserID == dbUser.UserID && tbUserType.typeClass == strUserTypeClass这句代码的意思是tbUser.UserID等于dbUser.UserID并且tbUserType.typeClass等于strUserTypeClass。
4、“var”是声明变量。由于所处位置的原因可把变量分为全局变量和局部变量。
5、Console是系统已经定义好的“控制台类”,是在“DOS”编程中用于接收和显示数据的。例如:console.log(text)这句代码的意思是控制台输出text。
6、花括号,即“{}”符号,是代码块逻辑封装运算符。
当它封装类的成员时是类体运算符;例如:class myName{}//类体运算符。
当它封装函数里面的功能代码时是函数体运算符;例如:public ActionResult UserLogin(int UserID){}// 函数体运算符。
当它封装结构代码时是某某结构代码体封装运算符。例如:if (strUserTypeClass.Trim() == “1”&& StudentName!==””){}else{}// if结构代码体封装运算符。
7、“()”符号和“[]”符号以及“{}”符号的区别和使用场合:
(1)“()”符号一般用于函数的设计和调用,封装形参和实参;用于if、for、while等判断语句的封装。
(2)“[]”符号用于对象集合成员的调用。例如:int[10]。
(3)“{}”符号是对完整代码块(表达式的集合)的封装。
8、linq 单表查询的写法:
var 自定义名 =(from 自定义的表名 in Model对象.查询的表
【where 自定义的表名.字段1 关系运算符 值 【&& 自定义的表名.字段2 关系运算符 值】】
【orderby 自定义的表名.字段】
【select 自定义的表名】
【select new {自定义的表名.字段1,
自定义的表名.字段2,
…
}】
【select new 类名{ 类的属性1=自定义的表名.字段1,
类的属性2=自定义的表名.字段2,
…
}】
).Single();//查询单条数据,当没有数据或者有多条数据时会触发异常
.ToList();//查询多条数据并转为List
.Count();//查询有多少条数据
10、以JSON格式返回值。例如:return Json(listUserType, JsonRequestBehavior.AllowGet);
二、流程控制语句之选择语句
1、if语句的格式具有两种。它们分别是
(1)if(表达式){语句};执行过程是如果表达式为真,则执行其后的语句,否则不执行语句。
(2)if(表达式){语句1}else{语句2};它的功能是如果表达式为真,则执行语句1,否则执行语句2。
2、我们要注意的是:if语句格式一(if)的函数基础是没有参数,返回空值;它的逻辑运算符是&&和bool。而if语句格式二(if else)的函数基础是有参数,返回空值;它的逻辑运算符是&&和bool以及datetime。
3、如果if语句中的执行语句又是一个if语句的话,就会构成if语句嵌套的情况。格式是if(表达式){if语句}和if(表达式)else{if语句}。这时,我们需要注意:
(1)在多重嵌套时,else是与在它之前出现的、尚未匹配的、离它最近的if匹配。
(2){}可能会更改配对的原则。
(3)一般情况下,不建议使用if语句的嵌套结构。这样会使得程序更便于阅读与理解。
4、选择结构中,还有另一种语句,即if-else-if语句。
(1)它的格式是
if (表达式1){语句1}
else if(表达式2){语句2}
……
else if(表达式n){语句n}
else{语句n+1}。
(2)它的执行过程是依次判断表达式的值,当出现某个值为真时,则执行对应语句,然后跳到整个if语句之外继续执行程序。而如果所有的表达式均为假,则执行语句n+1,然后继续执行后续程序。