ASPNET成绩查询系统
大致功能
ASPNET成绩查询系统,本系统只能查看成绩,为课堂练习作业,什么都干不了
查看成绩界面
主要练习的是sql的查询,系统为三层架构,表示层,业务逻辑层,数据访问层,还有一个模型层,数据库配置文件如下
<!--
有关如何配置 ASP.NET 应用程序的详细消息,请访问
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
<connectionStrings>
<add name="studentdbConnectionString" connectionString="Data Source=.\sqlexpress;Initial Catalog=studentdb;Integrated Security=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
登录代码
这里是登录代码,代码层面为数据访问层,数据通过表示层进行封装,业务逻辑层进行密码加密处理,加密之后通过数据访问层查询返回学生信息,如果有相关学生信息就返回当前学生,如果返回的学生信息为空,证明没有当前学生信息,前台提示密码错误或者学生信息错误
public Student FindStudent(Student student) {
string sql = "select student.*,grade.gradeName from student inner join grade on student.gradeId=grade.gradeId where stuname=@stuname and stupwd=@stupwd";
SqlParameter p = new SqlParameter("@stuname", student.StuName);
SqlParameter p2 = new SqlParameter("@stupwd", student.StuPwd);
SqlDataReader reader = DBHelper.ExecuteReader(sql, p,p2);
Student stu = null;
if (reader.Read())
{
stu = new Student()
{
StuId = Convert.ToInt32(reader["stuid"]),
StuName = Convert.ToString(reader["stuname"])
};
}
reader.Close();
return stu;
}
DBHelper文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
namespace SMS.DAL
{
public class DBHelper
{
/// <summary>
/// 获取连接
/// </summary>
/// <returns></returns>
public static SqlConnection GetConnection()
{
string connstr = ConfigurationManager.ConnectionStrings["studentdbConnectionString"].ConnectionString;
return new SqlConnection(connstr);
}
/// <summary>
/// 执行select 查询
/// </summary>
/// <param name="sql"></param>
/// <param name="parameter"></param>
/// <returns></returns>
public static SqlDataReader ExecuteReader(string sql, params SqlParameter[] parameter)
{
SqlConnection conn = GetConnection();
SqlCommand comm = new SqlCommand(sql, conn);
if (parameter != null)
{
comm.Parameters.AddRange(parameter);
}
conn.Open();
SqlDataReader reader = comm.ExecuteReader(CommandBehavior.CloseConnection);
return reader;
}
/// <summary>
/// 执行select 查询
/// </summary>
/// <param name="sql"></param>
/// <param name="parameter"></param>
/// <returns></returns>
public static DataTable GetTable(string sql, params SqlParameter[] parameter)
{
SqlDataAdapter adapter = new SqlDataAdapter(sql, GetConnection());
DataTable dt = new DataTable();
if (parameter != null)
{
adapter.SelectCommand.Parameters.AddRange(parameter);
}
adapter.Fill(dt);
return dt;
}
/// <summary>
/// 执行只有一行结果的select查询
/// </summary>
/// <param name="sql"></param>
/// <param name="parameter"></param>
/// <returns></returns>
public static DataRow GetRow(string sql, params SqlParameter[] parameter)
{
SqlDataAdapter adapter = new SqlDataAdapter(sql, GetConnection());
DataTable dt = new DataTable();
if (parameter != null)
{
adapter.SelectCommand.Parameters.AddRange(parameter);
}
adapter.Fill(dt);
if (dt.Rows.Count > 0)
{
return dt.Rows[0];
}
return null;
}
/// <summary>
/// 执行只有一个结果的select 查询
/// </summary>
/// <param name="sql"></param>
/// <param name="parameter"></param>
/// <returns></returns>
public static object ExecuteScalar(string sql, params SqlParameter[] parameter)
{
SqlConnection conn = GetConnection();
SqlCommand comm = new SqlCommand(sql, conn);
if (parameter != null)
{
comm.Parameters.AddRange(parameter);
}
conn.Open();
object obj = comm.ExecuteScalar();
conn.Close();
return obj;
}
/// <summary>
/// 执行 insert delete update 的sql语句
/// </summary>
/// <param name="sql"></param>
/// <param name="parameter"></param>
/// <returns></returns>
public static int ExecuteUpdate(string sql, params SqlParameter[] parameter)
{
SqlConnection conn = GetConnection();
SqlCommand comm = new SqlCommand(sql, conn);
if (parameter != null)
{
comm.Parameters.AddRange(parameter);
}
conn.Open();
int ret = comm.ExecuteNonQuery();
conn.Close();
return ret;
}
}
}
StudentDal文件
这个文件封装了所有关于学生的操作
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SMS.Model;
using System.Data;
using System.Data.SqlClient;
namespace SMS.DAL
{
public class StudentDAL
{
public List<Student> GetAllStudent()
{
string sql = "select student.*,grade.gradeName from student inner join grade on student.gradeId=grade.gradeId";
SqlDataReader reader = DBHelper.ExecuteReader(sql);
List<Student> list = new List<Student>();
while (reader.Read())
{
Student stu = new Student()
{
StuId = Convert.ToInt32(reader["stuid"]),
StuName = Convert.ToString(reader["stuname"]),
Gender = Convert.ToString(reader["gender"]),
Phone = Convert.ToString(reader["phone"]),
Grade = new Grade()
{
GradeId = Convert.ToInt32(reader["gradeId"]),
GradeName = Convert.ToString(reader["gradeName"])
}
};
list.Add(stu);
}
reader.Close();
return list;
}
public List<Student> FindStudent(string name, int gradeId)
{
string sql = "select student.*,grade.gradeName from student inner join grade on student.gradeId=grade.gradeId where 1=1 ";
List<SqlParameter> args = new List<SqlParameter>();
if (!string.IsNullOrEmpty(name))
{
sql += " and stuname like @stuname ";
args.Add(new SqlParameter("@stuname", "%" + name + "%"));
}
if (gradeId != -1)
{
sql += " and student.gradeId=@gradeId";
args.Add(new SqlParameter("@gradeId", gradeId));
}
SqlDataReader reader = DBHelper.ExecuteReader(sql, args.ToArray());
List<Student> list = new List<Student>();
while (reader.Read())
{
Student stu = new Student()
{
StuId = Convert.ToInt32(reader["stuid"]),
StuName = Convert.ToString(reader["stuname"]),
Gender = Convert.ToString(reader["gender"]),
Phone = Convert.ToString(reader["phone"]),
Grade = new Grade()
{
GradeId = Convert.ToInt32(reader["gradeId"]),
GradeName = Convert.ToString(reader["gradeName"])
}
};
list.Add(stu);
}
reader.Close();
return list;
}
public List<Student> SearchAllStudent(string stuid, string stuname)
{
string sql = "select student.*,grade.gradeName from student inner join grade on student.gradeId=grade.gradeId where 1=1 ";
List<SqlParameter> args = new List<SqlParameter>();
if (!string.IsNullOrEmpty(stuid))
{
sql += " and stuid like @stuid ";
args.Add(new SqlParameter("@stuid", "%" + stuid + "%"));
}
if (!string.IsNullOrEmpty(stuname))
{
sql += " and stuname like @stuname ";
args.Add(new SqlParameter("@stuname", "%" + stuname + "%"));
}
SqlDataReader reader = DBHelper.ExecuteReader(sql, args.ToArray());
List<Student> list = new List<Student>();
while (reader.Read())
{
Student stu = new Student()
{
StuId = Convert.ToInt32(reader["stuid"]),
StuName = Convert.ToString(reader["stuname"]),
Gender = Convert.ToString(reader["gender"]),
Phone = Convert.ToString(reader["phone"]),
Grade = new Grade()
{
GradeId = Convert.ToInt32(reader["gradeId"]),
GradeName = Convert.ToString(reader["gradeName"])
}
};
list.Add(stu);
}
reader.Close();
return list;
}
public Student FindStudent(int stuid)
{
string sql = "select student.*,grade.gradeName from student inner join grade on student.gradeId=grade.gradeId where stuid=@stuid ";
SqlParameter p = new SqlParameter("@stuid", stuid);
SqlDataReader reader = DBHelper.ExecuteReader(sql, p);
Student stu = null;
if (reader.Read())
{
stu = new Student()
{
StuId = Convert.ToInt32(reader["stuid"]),
StuName = Convert.ToString(reader["stuname"]),
StuPwd=Convert.ToString(reader["StuPwd"]),
Gender = Convert.ToString(reader["gender"]),
Phone = Convert.ToString(reader["phone"]),
Grade = new Grade()
{
GradeId = Convert.ToInt32(reader["gradeId"]),
GradeName = Convert.ToString(reader["gradeName"])
}
};
}
reader.Close();
return stu;
}
public Student FindStudent(Student student) {
string sql = "select student.*,grade.gradeName from student inner join grade on student.gradeId=grade.gradeId where stuname=@stuname and stupwd=@stupwd";
SqlParameter p = new SqlParameter("@stuname", student.StuName);
SqlParameter p2 = new SqlParameter("@stupwd", student.StuPwd);
SqlDataReader reader = DBHelper.ExecuteReader(sql, p,p2);
Student stu = null;
if (reader.Read())
{
stu = new Student()
{
StuId = Convert.ToInt32(reader["stuid"]),
StuName = Convert.ToString(reader["stuname"])
};
}
reader.Close();
return stu;
}
public bool InsertStudent(Student stu)
{
string sql = "insert into student values(@stuname,@gender,@gradeId,@phone)";
SqlParameter p1 = new SqlParameter("@stuname", stu.StuName);
SqlParameter p2 = new SqlParameter("@gender", stu.Gender);
SqlParameter p3 = new SqlParameter("@gradeId", stu.Grade.GradeId);
SqlParameter p5 = new SqlParameter("@phone", stu.Phone);
int ret = DBHelper.ExecuteUpdate(sql, p1, p2, p3, p5);
return ret > 0;
}
public bool DeleteStudent(int stuid)
{
string sql = "delete from student where stuid=@stuid";
SqlParameter p = new SqlParameter("@stuid", stuid);
return DBHelper.ExecuteUpdate(sql, p) > 0;
}
public bool UpdateStudent(Student stu)
{
string sql = "update student set stuname=@stuname,gender=@gender,gradeId=@gradeid,phone=@phone where stuid=@stuid";
SqlParameter p1 = new SqlParameter("@stuname", stu.StuName);
SqlParameter p2 = new SqlParameter("@gender", stu.Gender);
SqlParameter p3 = new SqlParameter("@gradeid", stu.Grade.GradeId);
SqlParameter p4 = new SqlParameter("@phone", stu.Phone);
SqlParameter p6 = new SqlParameter("@stuid", stu.StuId);
return DBHelper.ExecuteUpdate(sql, p1, p2, p3, p4, p6) > 0;
}
public bool DeleteStudents(params int [] stuids)
{
if (stuids != null && stuids.Length > 0)
{
string sql = "delete from student where stuid in(";
foreach (var item in stuids)
{
sql += item + ",";
}
sql = sql.Substring(0, sql.Length - 1);
sql += ")";
return DBHelper.ExecuteUpdate(sql) > 0;
}
else
{
return false;
}
}
private string join(int[] arr)
{
string str = "";
foreach (var item in arr)
{
str += ",";
}
if (str.Length > 0)
{
return str.Substring(0, str.Length - 1);
}
else
{
return str;
}
}
}
}
ExamDal文件
考试成绩的文件
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using SMS.Model;
using System.Data.SqlClient;
namespace SMS.DAL
{
public class Class1
{
public List<Exam> GetExam(string stuname)
{
string sqlstr = "select Exam.*,Student.*,[Subject].* from Exam inner join student on Exam.StuId=Student.StuId inner join StudentDB.dbo.[Subject] on Exam.SubId=[Subject].SubId where Student.StuName like '%" + stuname + "%'";
SqlDataReader reader = DBHelper.ExecuteReader(sqlstr);
List<Exam> list = new List<Exam>();
while (reader.Read())
{
Exam stu = new Exam()
{
ExamId = Convert.ToInt32(reader["ExamId"]),
Student = new Student() { StuId = Convert.ToInt32(reader["StuId"]), StuName = Convert.ToString(reader["StuName"]) },
Subject = new Subject() { SubId = Convert.ToInt32(reader["SubId"]), SubName = Convert.ToString(reader["SubName"]) },
Score = Convert.ToInt32(reader["score"]),
ExamDate = Convert.ToDateTime(reader["ExamDate"]),
Remark = Convert.ToString(reader["Remark"])
};
list.Add(stu);
}
reader.Close();
return list;
}
public List<Exam> GetStuExam(int stuid)
{
string sqlstr = "select Exam.*,Student.*,[Subject].* from Exam inner join student on Exam.StuId=Student.StuId inner join StudentDB.dbo.[Subject] on Exam.SubId=[Subject].SubId where Student.StuId=" + stuid + "";
SqlDataReader reader = DBHelper.ExecuteReader(sqlstr);
List<Exam> list = new List<Exam>();
while (reader.Read())
{
Exam exam = new Exam()
{
ExamId = Convert.ToInt32(reader["ExamId"]),
Student = new Student() { StuId = Convert.ToInt32(reader["StuId"]), StuName = Convert.ToString(reader["StuName"]) },
Subject = new Subject() { SubId = Convert.ToInt32(reader["SubId"]), SubName = Convert.ToString(reader["SubName"]) },
Score = Convert.ToInt32(reader["score"]),
ExamDate = Convert.ToDateTime(reader["ExamDate"]),
Remark = Convert.ToString(reader["Remark"])
};
list.Add(exam);
}
reader.Close();
return list;
}
}
}
总结
相关代码放到资源文件里面可供免费下载
ASPNET成绩查询系统
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?