Linq查询
此Linq语句仅用于查询数据库
Linq是一种快速查询语句
Linq语句的基本结构如下:
From 临时变量 in Mode对象 where条件 orderby条件 groupby 条件 select 需要选择的值
其中orderby 和 groupby 是可选的
PW_ User(用户表):UserID(用户ID),UserNuber(账号),Password(密码);
SYS_UserType(用户类型表): UserTypeID(用户类型ID), UserType(用户类型名称),
UserTypeClass(用户类型类)
PW_Student(学生表): UserID(用户ID), StudentName(姓名), UserTypeClass(用户类型类为1)
PW_Teacher(教师表): UserID(用户ID), TeacherName(姓名), UserTypeClass(用户类型类为2)
根据用户类型判断当前用户是学生还是教师,判断之后再到相应的学生表&教师表查询用户名
string strUserID = Session["UserID"].ToString();//用户ID
int intUserID = Convert.ToInt32(strUserID);
string strUserTypeClass = Session["UserTypeClass"].ToString();//用户类型 1-学生 2-教师
//用户名
string UserName = "";
//根据用户类型判断当前登录用户是教师还是学生
//判断之后再到相应的学生表&教师表查询用户名
if (strUserTypeClass == "1")//登录的是学生
{
var dbStudent = (from tbStudent in myModels.PW_Student
where tbStudent.UserID == intUserID
select tbStudent).Single();
UserName = dbStudent.StudentName;
}
//教师或者管理员都是学校教师
else
{
var dbTeacher = (from tbTeacher in myModels.PW_Teacher
where tbTeacher.UserID == intUserID
select tbTeacher).Single();
UserName = dbTeacher.TeacherName;
}
(from 自定义的表名 in Model对象.查询的表
where 自定义的表名.字段 关系运算符 值
select 自定义的表名).Single():查询单条数据,当没有数据或者有多条数据时会触发异常
.ToList():查询多条数据并转为List
.Count():查询有多少条数据
Linq常用的俩个排序方法:
ascending(根据键按升序对序列的元素排序)
descending(根据键按降序对序列的元素排序)
多表查询:
在Linq中我们可以使用join 进行多表查询
学院表:学院ID,学院名称。
专业表:专业ID,学院ID,专业名称。
学生表:学生ID,专业ID,姓名,性别。
查询所有学生的学院名称,专业名称,姓名,性别。
var rec = from a in学生表
join b in专业表 on 学生表.专业ID equals 专业表.专业ID
join c in 学院表 on 专业表.学院ID equals 学院表.学院ID
select new item{
item1 = 学院表.学院名称,
item2 = 专业表.专业名称,
item3 = 学生表.姓名,
item4 = 学生表.性别
};
以上内容都在Visual Studio 上完成