using System; using System.Collections.Generic; using System.Data; using System.Data.OleDb; using System.Linq; using System.Linq.Expressions; using System.Text; namespace AccessStudy.Core { public class StudentOledbDal:IStudentIDal { private OledbUtil dbUtil = new OledbUtil(); /// /// 获取所有学生 /// /// public List GetAll() { var dataTable = dbUtil.GetDataTable("Student"); List students = DataTable2Model(dataTable); return students; } /// /// 按标识查询学生 /// public Student Get(int studentId) { var querySql = "select * from Student where Id=@studentId"; var paras = new List() { new OleDbParameter("studentId",studentId) }; var dataTable = dbUtil.GetDataTable(querySql, paras); return DataTable2Model(dataTable).FirstOrDefault(); } /// /// 按名称查询学生 /// public Student Get(string studentName) { var querySql = "select * from Student where Name=@studentName"; var paras = new List() { new OleDbParameter("studentName",studentName) }; var dataTable = dbUtil.GetDataTable(querySql, paras); return DataTable2Model(dataTable).FirstOrDefault(); } /// /// 添加学生 /// public bool Add(Student student) { var querySql = "INSERT INTO `Student` (Name,Age,Address,School) VALUES(@Name,@Age,@Address,@School); "; var paras = new List() { new OleDbParameter("@Name",student.Name), new OleDbParameter("@Age",student.Age), new OleDbParameter("@Address",student.Address), new OleDbParameter("@School",student.School), }; var effectRow = dbUtil.ExecuteNonQuery(querySql, paras); return effectRow > 0; } /// /// 更新学生 /// public bool Update(Student student) { var querySql = "Update Student Set Name=@Name,Age=@Age,Address=@Address,School=@School where Id=@Id;"; var paras = new List() { new OleDbParameter("Name",student.Name), new OleDbParameter("Age",student.Age), new OleDbParameter("Address",student.Address), new OleDbParameter("School",student.School), new OleDbParameter("Id",student.Id), }; var effectRow = dbUtil.ExecuteNonQuery(querySql, paras); return effectRow > 0; } /// /// 删除学生 /// public bool Delete(int studentId) { var querySql = "DELETE FROM Student WHERE Id = @Id; "; var paras = new List() { new OleDbParameter("Id",studentId), }; var effectRow = dbUtil.ExecuteNonQuery(querySql, paras); return effectRow > 0; } /// /// DataTable转实体列表 /// private List DataTable2Model(DataTable dTable) { List students = new List(); if (dTable==null) { return students; } foreach (DataRow row in dTable.Rows) { var student = new Student() { Id = (int)row["Id"], Name = row["Name"]?.ToString() ?? "", Age = (int)row["Age"], Address = row["Address"]?.ToString() ?? "", School = row["School"]?.ToString() ?? "", }; students.Add(student); } return students; } } }