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成绩查询系统

posted @   feisir  阅读(2)  评论(0编辑  收藏  举报  
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示