You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

143 lines
4.2 KiB
C#

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