控制器里面需要实现的方法:
public class DefaultController : ApiController
{
MyBLL bll = new MyBLL();
/// <summary>
/// 3表联查
/// </summary>
/// <param name="name"></param>
/// <param name="classId"></param>
/// <param name="schoolId"></param>
/// <param name="birth"></param>
/// <returns></returns>
[HttpGet]
public List<ShowViewModel> GetALLData(string name = null, int classId = 0, int schoolId = 0, string birth = null, int pageindex=1,int pagesize=2)
{
var stulist = bll.GetAllStudent();
var classlist = bll.GetAllClassInfo();
var schoollsit = bll.GetAllSchool();
var alllist = bll.GetAllStudent();
var list = (from s in stulist
join c in classlist on s.ClassId equals c.ClassId
join sch in schoollsit on c.SchoolId equals sch.SchoolId
select new ShowViewModel
{
Id = s.Id,
Name = s.Name,
Age = s.Age,
Sex = s.Sex,
Birth = s.Birth,
ClassId = c.ClassId,
ClassName = c.ClassName,
SchoolId = sch.SchoolId,
SchoolName = sch.SchoolName,
TotalCount= stulist.Count
}).ToList();
if (!string.IsNullOrEmpty(name))
{
list = list.Where(m => m.Name.Contains(name)).ToList();
}
if (classId > 0)
{
list = list.Where(m => m.ClassId == classId).ToList();
}
if (schoolId > 0)
{
list = list.Where(m => m.SchoolId == schoolId).ToList();
}
if (!string.IsNullOrEmpty(birth))
{
list = list.Where(m => m.Birth.Contains(birth)).ToList();
}
var skipcount = (pageindex - 1) * pagesize;
return list.Skip(skipcount).Take(pagesize).ToList();
}
/// <summary>
/// 根据Id查询学生
/// </summary>
/// <returns></returns>
[HttpGet]
public ShowViewModel GetStudentById(int id)
{
return GetALLData().Where(m => m.Id == id).FirstOrDefault();
}
/// <summary>
/// 查询所有学生
/// </summary>
/// <returns></returns>
[HttpGet]
public List<Student> GetAllStudent()
{
return bll.GetAllStudent();
}
/// <summary>
/// 查询所有班级
/// </summary>
/// <returns></returns>
[HttpGet]
public List<ClassInfo> GetAllClassInfo()
{
return bll.GetAllClassInfo();
}
/// <summary>
/// 根据学院Id查询班级
/// </summary>
/// <param name="schoolId"></param>
/// <returns></returns>
[HttpGet]
public List<ClassInfo> GetAllClassInfoBySchId(int schoolId)
{
return bll.GetAllClassInfoBySchId(schoolId);
}
/// <summary>
/// 查询所有学校
/// </summary>
/// <returns></returns>
[HttpGet]
public List<School> GetAllSchool()
{
return bll.GetAllSchool();
}
/// <summary>
/// 添加学生
/// </summary>
/// <param name="stu"></param>
/// <returns></returns>
[HttpPost]
public int AddStudent(Student stu)
{
return bll.AddStudent(stu);
}
/// <summary>
/// 修改学生
/// </summary>
/// <param name="stu"></param>
/// <returns></returns>
[HttpPut]
public int UpdateStudent(Student stu)
{
return bll.UpdateStudent(stu);
}
/// <summary>
/// 删除学生
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpDelete]
public int DeleteStudent(int id)
{
return bll.DeleteStudent(id);
}
/// <summary>
/// 批量删除学生
/// </summary>
/// <param name="ids">多个学生Id,以,分割的</param>
/// <returns></returns>
[HttpDelete]
public int DeleteAllStudent(string ids)
{
int sucess = 0;
foreach (var id in ids.Split(','))
{
sucess += bll.DeleteStudent(int.Parse(id));
}
return sucess;
}
}
}
Dal需要实现的方法:
public class MyDAL where T : class, new()
{
Model1 db = new Model1();
///
/// 查询
///
///
public List GetALL()
{
return db.Set().ToList();
}
/// <summary>
/// 新增
/// </summary>
/// <param name="t"></param>
/// <returns></returns>
public int Add(T t)
{
db.Set<T>().Add(t);
return db.SaveChanges();
}
/// <summary>
/// 修改
/// </summary>
/// <param name="t"></param>
/// <returns></returns>
public int Update(T t)
{
db.Set<T>().Attach(t);
db.Entry(t).State = System.Data.Entity.EntityState.Modified;
return db.SaveChanges();
}
/// <summary>
/// 删除
/// </summary>
/// <param name="t"></param>
/// <returns></returns>
public int Delete(T t)
{
db.Set<T>().Remove(t);
return db.SaveChanges();
}
}
BLL层需要实现的方法:
public class MyBLL
{
MyDAL studb = new MyDAL();
MyDAL classdb = new MyDAL();
MyDAL schdb = new MyDAL();
/// <summary>
/// 查询所有学生
/// </summary>
/// <returns></returns>
public List<Student> GetAllStudent()
{
return studb.GetALL();
}
/// <summary>
/// 查询所有班级
/// </summary>
/// <returns></returns>
public List<ClassInfo> GetAllClassInfo()
{
return classdb.GetALL();
}
/// <summary>
/// 根据学院Id查询班级
/// </summary>
/// <param name="schoolId"></param>
/// <returns></returns>
public List<ClassInfo> GetAllClassInfoBySchId(int schoolId)
{
return classdb.GetALL().Where(m => m.SchoolId == schoolId).ToList();
}
/// <summary>
/// 查询所有学校
/// </summary>
/// <returns></returns>
public List<School> GetAllSchool()
{
return schdb.GetALL();
}
/// <summary>
/// 添加学生
/// </summary>
/// <param name="stu"></param>
/// <returns></returns>
public int AddStudent(Student stu)
{
return studb.Add(stu);
}
/// <summary>
/// 修改学生
/// </summary>
/// <param name="stu"></param>
/// <returns></returns>
public int UpdateStudent(Student stu)
{
return studb.Update(stu);
}
/// <summary>
/// 删除学生
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
public int DeleteStudent(int id)
{
var stu = studb.GetALL().Where(m => m.Id == id).FirstOrDefault();
return studb.Delete(stu);
}
}
///
/// 调用分页存储过程
///
///
///
///
public List WPageProc(int Pageindex = 1,int Pagesize = 2)
{
var list = new List();
int Pcount = 0;
SqlParameter Index = new SqlParameter("@PageIndex", Pageindex);
Index.Direction = ParameterDirection.Input;
SqlParameter Size = new SqlParameter("@PageSize", Pagesize);
Size.Direction = ParameterDirection.Input;
SqlParameter Count = new SqlParameter("@PageCount", Pcount);
Count.Direction = ParameterDirection.Output;
ConText.WlWtext.SqlQuery("exec Proc_Page", new SqlParameter[] { Index, Size, Count });
return list;
}
}
create proc Proc_Page
@PageIndex int,
@PageSize int,
@Count int output
as
begin begin tran
commit tran
select @Count = COUNT(*) from [WuLianWangInfo]
declare @PageCount int
if(@PageIndex < 1)
begin
set @PageIndex = 1
end
if(@PageCount % @PageSize = 0)
begin
select @PageCount = @PageCount / @PageSize
end
if(@PageCount % @PageSize = 1)
begin
select @PageCount = @PageCount / @PageSize + 1
end
if(@PageIndex > @PageCount)
begin
set @PageIndex = @PageCount
end
select * from
(select ROW_NUMBER() over(order by WId) as RowT,* from [WuLianWangInfo])
as Wpage join [JueSe] Jue on Jue.JId = Wpage.JsId where RowT between (@PageIndex - 1) * @PageSize and @PageSize
end
drop proc Proc_Page
declare @a int
declare @b int
exec Proc_Page 1,2,@a out
select @a 总页数
//批量删除
function deleteALL() {
if (confirm("确认要批量删除吗?")) {
var ids = [];
$("input[id=CheckboxOne]:checked").each(function () {
ids.push($(this).val());
});
if (ids.length <= 0) {
alert("请至少选择一项");
return false;
}
//AJax实现跨域访问API
$.ajax({
url: "http://localhost:2923/api/default/DeleteAllStudent?ids=" + ids,//API地址
type: "delete",//请求方式
dataType: "json",//数据格式
async: false,//是否异步默认是true,true:异步 false:同步
success: function (data) {
if (data > 0) {
alert("删除成功");
showData();
}
else {
alert("删除失败");
}
}
});
}