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();
)
{
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.项目完成
Student管理系统的更多相关文章
- MVC丶 (未完待续······)
希望你看了此小随 可以实现自己的MVC框架 也祝所有的程序员身体健康一切安好 ...
- 学生信息管理系统总结——student数据库中表关系分析
说到关系,那就不得不提两个东西: 1.E-R图,也称实体-联系图(Entity Relationship Diagram),提供了表示实体类型.属性和联系的方法,用来描述现实世界的概念模型 2.关系模 ...
- Student学生管理系统
1.定义各个层 2.添加各个层之间的引用 DAL 层调用Model BLL层调用DAL和Model UI层调用BLL和Model层 Model层供各个层调用 3.根据数据库建立实体类,每张表对应一个实 ...
- 【IOS开发笔记02】学生管理系统
端到端的机会 虽然现在身处大公司,但是因为是内部创业团队,产品.native.前端.服务器端全部坐在一起开发,大家很容易做零距离交流,也因为最近内部有一个前端要转岗过来,于是手里的前端任务好像可以抛一 ...
- 数据结构(c语言)之学生信息管理系统
程序思维导图 代码表示(代码参考:长春大学-牛言涛老师) 如有错误请指出欢迎交流 #include<stdio.h> #include<malloc.h>//动态存储分配函数头 ...
- C程序范例(2)——学生管理系统”链表“实现
1.对于学生管理系统,能够实现的方法有许多,但是今天我们用链表的方法来实现.虽然初学者很可能看不懂,但是不要紧,这是要在整体的系统的学习完C语言之后,我才编写出的程序.所以大家不必要担心.在这里与大家 ...
- Python开发程序:学员管理系统(mysql)
主题:学员管理系统 需求: 用户角色,讲师\学员, 用户登陆后根据角色不同,能做的事情不同,分别如下 讲师视图: 管理班级,可创建班级,根据学员qq号把学员加入班级 可创建指定班级的上课纪录,注意一节 ...
- Java项目:学生成绩管理系统(二)
学生成绩管理系统(二):项目介绍 一.设计要求: 1.1 简单的图形界面登录功能. 1.2 对数据库的的信息的查询功能. 1.3 对数据库的的信息的修改功能. 1.4 对数据库的的信息的删除功能. 1 ...
- 基于数据库MySQL的简易学生信息管理系统
通过这几天学习Mysql数据库,对其也有了基本的了解,为了加深印象,于是就写了一个最简易的学生信息管理系统. 一:基本要求 1.通过已知用户名和密码进行登录: 2.可以显示菜单: 3.可以随时插入学生 ...
随机推荐
- 自定义JSP标签库及Properties使用
自定义JSP标签库及Properties使用 自定义JSP标签 自定义JSP标签技术是在JSP 1.1版本中才出现的,它支持用户在JSP文件中自定义标签,这样可以使JSP代码更加简洁. 这些可重用的标 ...
- ios线程和GCD
1.什么是进程? 进程是指在系统中正在运行的一个应用程序.比如同时打开QQ.Xcode,系统就会分别启动2个进程.截图 2.什么是线程? 1).一个进程要想执行任务,必须得有线程(每一个进程至少要有一 ...
- UITableView增加和删除、移动
复习一下: 1.在控制器上添加一个UITableView, 暂时该UITableView控件变量名命名为为tableView, 设置控件代理,实现控制器的UITableViewDataSource, ...
- Android音乐播放器源码(歌词.均衡器.收藏.qq5.0菜单.通知)
一款Android音乐播放器源码,基本功能都实现了 qq5.0菜单(歌词.均衡器.收藏.qq5.0菜单.通知) 只有向右滑动出现,菜单键和指定按钮都还没有添加. 源码下载:http://code.66 ...
- web service上传参数代码实例
web service上传参数代码实例 这次做的项目用到webservice比较多,最开始在网上看的参考dome,发现都不行,后来发现安卓4.0以后有很大的不同,在做传参时,有些东西需要注意: 第一, ...
- #一周五# (视频) 手掌四轴Estes 4606,树莓派2和WRTNode,WinHEC 2015深圳
又到周五,本周<快速创建网站>系列接近尾声,主要部分已经完成,还差最后一篇博主我正在整理.这里给大家分享一些最近看到的有意思的东西. 手掌四轴飞行器 无人机这段时间可是大出风头,DJI或者 ...
- Java基础知识学习(一)
部门接了新项目,后台使用Java框架play framework,前端是html,前后台通过rest交互,能够支持多端的互联网架构. 因为之前没有Java基础,前端使用的也很少,决定深入学习一下Jav ...
- .net开发过程中遇到的错误,及解决办法记录
一.在证书存储区中找不到清单签名证书. 解决方法:右击项目属性—>签名—>为ClickOnce清单签名,将勾掉的选项去掉. 参考:http://www.cnblogs.com/190196 ...
- 服务器磁盘扩展卷时遭遇“There is not enough space available on the disk(s) to complete this operation.”错误
在ESX VM的一台服务器由于磁盘空间告警,打算决定给E盘扩展空间,增加20G的空间,在操作过程遭遇了Expanding Disk Volume gives error "There is ...
- Javascript之旅——第十一站:原型也不好理解?
写到这篇,我的js系列也快接近尾声了,所以这个系列不会遗留js来实现面向对象的核心——原型,有些人说原型不好理解,其实嘛,要想系统 的理解原型,最便捷的方式就是看看经典的书,少看些博客,博客这东西只是 ...