Student管理系统

使用三层架构实现Student管理系统,分为Studrnt.Model层,Student.DAL层,Student.BLL层和Student.UI层

步骤分析:

1.在Student.Model添加StudentModel类,每一个类对应数据库表中的字段

2.在每一层添加引用,DAL层引用Model层,BLL层引用DAL和Model层,UI层引用BLL层和Model层

3.在Student.DAL层建一个StudentDAL类

在StudentDAL类中添加一个DataTable类型的方法,进行所有学生信息查询

 public DataTable Select()
        {
            string str = "Data Source=.;Initial catalog=StudentDB;uid=sa";
            using (SqlConnection con = new SqlConnection(str))
            {
                string sql = "select * from Student";
                SqlDataAdapter da = new SqlDataAdapter(sql,con);
                DataSet ds = new DataSet();
                da.Fill(ds, "Student");
                return ds.Tables["Student"];
            }
        }

在BLL层添加StudentBLL类,在StudentBLL层中添加与StudentDAL层中方法重名的Select()类

调用StudentDAL的Select()方法,返回dal.Select()

public DataTable Select()
        {
            //调用StudentDAL层Select()方法

            return dal.Select();
        }

在Load事件中对StudentBLL类中的Select()方法进行调用,再将数据动态绑定到DataGridView(dgvList)控件上

private void FrmStudent_Load(object sender, EventArgs e)
        {
            //dgvList加载数据
            DataTable table = bll.Select();
            dgvList.DataSource = table;
        }

运行结果如下:

4.在StudentDAL类中添加一个DataTable类型的方法,进行根据学生姓名查询学生信息的方法

 public DataTable SelectName(string name)
        {
            string str = "Data Source=.;Initial catalog=StudentDB;uid=sa";
            //con释放资源
            using (SqlConnection con = new SqlConnection(str))
            {
                //模糊查询语句
                string sql = "select * from Student where stu_name like‘%"+name+"%‘";
                using (SqlDataAdapter da = new SqlDataAdapter(sql, con))
                {
                    DataSet ds = new DataSet();
                    da.Fill(ds, "StudentName");
                    return ds.Tables["StudentName"];

                }
            }
        }

在StudentBLL层中添加与StudentDAL层中方法重名的SelectName()类

调用StudentDAL的SelectName()方法,返回dal.SelectName()

      public DataTable SelectName(string name)
        {
            return dal.SelectName(name);
        }

在窗体中的查询按钮中写入代码,定义一个count接收txtSname中输入的值,调用BLL层中SelectName()方法进行模糊查询,将查询的数据动态绑定到dgvlist上

 private void btnSelect_Click(object sender, EventArgs e)
        {
            string count = txtSname.Text;
            dgvList.DataSource = bll.SelectName(count);
        }

运行结果如下:

5.在StudentDAL类中添加一个Bool类型的AddStudent()类,默认返回False

 public bool AddStudent(StudentModel model)
        {
            bool result = false;
            string str = "Data Source=.;Initial catalog=StudentDB;uid=sa";
            using (SqlConnection con = new SqlConnection(str))
            {
                string sql = "Insert into Student(stu_name,stu_age,stu_sex,stu_email) values(@name,@age,@gender,@email)";
                SqlParameter[] para =
                {
                    new SqlParameter("@name",model.Name),
                    new SqlParameter("@age",model.Age),
                    new SqlParameter("@gender",model.Gender),
                    new SqlParameter("@email",model.Email)
                };
                SqlCommand cmd = new SqlCommand(sql, con);
                cmd.Parameters.AddRange(para);
                try
                {
                    con.Open();
                    int count = cmd.ExecuteNonQuery();
                    if(count>0)
                    {
                        result = true;
                    }

                }
                catch (Exception)
                {

                    throw;
                }
                finally
                {

                }

            }
            return result;
        }

在StudentBLL类中添加对StudentDAL类中对AddStudent方法的调用

 public bool AddStudent(StudentModel model)
        {
            //调用StudentDAL层AddStudent()方法
            return dal.AddStudent(model);
        }

在窗体中的录入数据按钮中写入代码

        private void btnAdd_Click(object sender, EventArgs e)
        {
            //当姓名不为空时,进行添加
            if(txtName.Text!="")
            {
                //给StudentModel中属性赋值
                model.Name = txtName.Text;
                model.Age = Convert.ToInt32(txtAge.Text);
                model.Gender = cmbGender.SelectedItem.ToString();
                model.Email = txtEmail.Text;
                bool result = bll.AddStudent(model);
                if (result)
                {
                    MessageBox.Show("添加成功!");
                    //即时刷新
                    dgvList.DataSource = bll.Select();
                }
                else
                {
                    MessageBox.Show("添加失败!");
                }
            }
            else
            {
                //否则提示
                MessageBox.Show("姓名不能为空!");
            }

        }

6.项目完成

时间: 2024-10-13 23:31:46

Student管理系统的相关文章

听风讲MVC丶 —— 一言不合就撸码 (未完待续······)

     希望你看了此小随 可以实现自己的MVC框架     也祝所有的程序员身体健康一切安好                                                                                                                                                ——久伴深海丶默 1.什么是前端控制器(font controller).Java Web中的前端控制器是应用的门面,

学生管理系统(jsp+mysql)

1.实验目的 通过使用 Java Web 技术设计一个简单的数据库管理系统,了解前台页面和后 台编辑页面的区别,掌握 Web 服务器与 MySQL 数据库的连接和数据库操作的方 法,掌握使用 JSP 编写后台代码的方法. 2.实验内容和要求 开发一个学生管理系统,完成学生信息的查看.增加.删除和修改等功能. 对于客户端增加和修改信息页面,要使用 javascript 进行必要的数据的非空验证. 自行添加一些 css,使得页面和字体更加美观. 3.实验步骤及实验结果 (1)打开 MySQL,新建一

自写信息管理系统——C实现

信息管理系统 简介: 该管理系统分为三个权限:学生,老师,管理员 用双向链表实现,文件储存,有账号密码功能. 密码实现MD5加密,较难破解 实现了链表添加,查找,排序,删除等基本操作 共分为6个文件 5个.cpp文件  1个.h文件 下面上代码 : mian.cpp: #include<stdio.h> #include<math.h> #include<string.h> #include<conio.h> #include<stdlib.h>

《C语言编写 学生成绩管理系统》

/* (程序头部凝视開始)* 程序的版权和版本号声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名: 学生成绩管理系统 * 作 者: 刘江波 * 完毕日期: 2012 年 6 月 23 日* 版 本 号: v.623 * 对任务及求解方法的描写叙述部分 * 程序头部的凝视结束 */ #include "stdio.h" #include"string" /*定义学生结构体*/ struc

c语言学生管理系统链表(dev vs2012下可以运行)

struct student { char name[10]; char sex[5]; long int num;//学号 int xuhao; int age; float score[3]; float averange; char DJ;//存放等级哦 struct student *next; };//定义结构体变量保存 名字 性别 年龄 成绩] 结构体声明 int n;//存放学生人数 int man;//存放统计的男生数 float JY(float a)//校验成绩使范围0-10

用基本数据结构修改后的学生信息管理系统(增删改查)

package com.xt.student.system; //创建学生类存放信息 public class Student {//声明变量private String stuNo; private String stuName; private String gender; private int age; private int score; //对变量进行封装 public String getStuNo() {return stuNo;} public void setStuNo(St

利用二叉树设计同学录管理系统

采用二叉树存储结构,利用预置数组建立二叉树:实现对通讯录的查找,基于查找实现对同学录的修改和新增成员:求所要操作节点的父节点,从而顺利地编写对同学录的删除操作. /*采用二叉树存储结构,利用预置数组建立二叉树:实现对通讯录的查找,基于查找实现对同学录的修改和新增成员:求所要操作节点的父节点,从而顺利地编写对同学录的删除操作.*/#include<stdio.h>#include<stdlib.h>#include<string.h>#define M 100#defin

Mysql学生管理系统:表的建立,外键一对多,多对多关系,中间关联表的建立

学生管理系统 管理员注册/登录/注销 注册班级(班级详细信息) 注册学生信息 查看班级信息/查看老师资料 教师注册/注销  查看教师资料  查看学生资料  根据名称/班级/ 查看学生详细信息--支持模糊 注册科目 管理员(admini) ad_id(管理员id)     ad_number(管理员账号) ad_pass(管理员密码)    ad_yn(管理员是否禁用) create table admini( ad_id int PRIMARY KEY AUTO_INCREMENT,-- 主键自

linux笔记 2-4 管理系统存储

******************4.管理系统存储****************** ## 1.分区划分 ## fdisk /dev/vdb               //进入分区划分 partprobe                    //加载分区表 cat /proc/partitions         //查看分区信息 mkfs.xfs                     //创建xfs文件系统==格式化分区 blkid                        //