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.1 KiB
C#

4 years ago
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Odbc;
4 years ago
using System.Linq;
using System.Linq.Expressions;
4 years ago
using System.Text;
namespace AccessStudy.Core
{
public class StudentOdbcDal:IStudentIDal
4 years ago
{
private OdbcUtil dbUtil = new OdbcUtil();
4 years ago
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=?";
var paras = new List<OdbcParameter>()
4 years ago
{
new OdbcParameter("studentId",studentId)
4 years ago
};
var dataTable = dbUtil.GetDataTable(querySql, paras);
return DataTable2Model(dataTable).FirstOrDefault();
}
/// <summary>
/// 按名称查询学生
/// </summary>
public Student Get(string studentName)
{
var querySql = "select * from Student where Name=?";
var paras = new List<OdbcParameter>()
{
new OdbcParameter("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(?,?,?,?); ";
var paras = new List<OdbcParameter>()
4 years ago
{
new OdbcParameter("@Name",student.Name),
new OdbcParameter("@Age",student.Age),
new OdbcParameter("@Address",student.Address),
new OdbcParameter("@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=?,Age=?,Address=?,School=? where Id=?;";
var paras = new List<OdbcParameter>()
4 years ago
{
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),
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 = ?; ";
var paras = new List<OdbcParameter>()
4 years ago
{
new OdbcParameter("Id",studentId),
4 years ago
};
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
}
}