using System; using System.Collections.Generic; using System.Data; using System.Data.Odbc; using System.Linq; using System.Linq.Expressions; using System.Text; namespace AccessStudy.Core { public class StudentOdbcDal:IStudentIDal { private OdbcUtil dbUtil = new OdbcUtil(); /// /// 获取所有学生 /// /// 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=?"; var paras = new List() { new OdbcParameter("studentId",studentId) }; var dataTable = dbUtil.GetDataTable(querySql, paras); return DataTable2Model(dataTable).FirstOrDefault(); } /// /// 按名称查询学生 /// public Student Get(string studentName) { var querySql = "select * from Student where Name=?"; var paras = new List() { new OdbcParameter("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(?,?,?,?); "; var paras = new List() { new OdbcParameter("@Name",student.Name), new OdbcParameter("@Age",student.Age), new OdbcParameter("@Address",student.Address), new OdbcParameter("@School",student.School), }; var effectRow = dbUtil.ExecuteNonQuery(querySql, paras); return effectRow > 0; } /// /// 更新学生 /// public bool Update(Student student) { var querySql = "Update Student Set Name=?,Age=?,Address=?,School=? where Id=?;"; var paras = new List() { new OdbcParameter("Name",student.Name), new OdbcParameter("Age",student.Age), new OdbcParameter("Address",student.Address), new OdbcParameter("School",student.School), new OdbcParameter("Id",student.Id), }; var effectRow = dbUtil.ExecuteNonQuery(querySql, paras); return effectRow > 0; } /// /// 删除学生 /// public bool Delete(int studentId) { var querySql = "DELETE FROM Student WHERE Id = ?; "; var paras = new List() { new OdbcParameter("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; } } }