C#连接后台数据库开发学生管理系统课程设计过程步骤细化到极致.docx
- 文档编号:17444821
- 上传时间:2023-07-25
- 格式:DOCX
- 页数:21
- 大小:24.41KB
C#连接后台数据库开发学生管理系统课程设计过程步骤细化到极致.docx
《C#连接后台数据库开发学生管理系统课程设计过程步骤细化到极致.docx》由会员分享,可在线阅读,更多相关《C#连接后台数据库开发学生管理系统课程设计过程步骤细化到极致.docx(21页珍藏版)》请在冰点文库上搜索。
C#连接后台数据库开发学生管理系统课程设计过程步骤细化到极致
王L让我们弄个课程设计,才讲两节课就撒手不管了。
还说简单,简单个JB。
对他来说当然简单了,对我这样的菜鸟来说简直是难如登天,我相信像我这样的菜鸟肯定还有,只有菜鸟才知道菜鸟的辛苦,为了让这些菜鸟们不再辛苦了,我把所有的实验过程一步一步都给写了出来,细化到最简单,只要是个人都能看懂的。
不能保证我的过程都是对了,我也是摸着石头过了河,在菜鸟们还没有看到桥的时候不妨也摸着石头走一趟吧。
下面步骤中的一些东西是本人的看法,如果错了也不必吐糟,毕竟哥还是个初级菜鸟。
【第一部分:
创建数据库】
1,在自己的E盘建立一个名为课程设计数据库的文件夹。
2,打开sqlserver2008,点击新建查询,在右边的编辑框里输入如下代码——》点击执行。
createdatabasestudent
on
primary
(name=student_dat,
filename='E:
\课程设计数据库\student.mdf',
size=5MB,
maxsize=50,
filegrowth=2MB)
logon
(name=教学管理数据库_log,
filename='E:
\课程设计数据库\student.ldf',
size=5MB,
maxsize=100MB,
filegrowth=2MB)
go
usestudent
go
CREATETABLEstudent
(
snoNVARCHAR(10)PRIMARYKEY,
snameNVARCHAR(8),
ssexNVARCHAR
(1),
sbirthdayNVARCHAR(10)
)
createtableuserlogin
(
usernameNVARCHAR(8)primarykey,
passwordnvarchar(20)NOTNULL
)
insertintostudentvalues('2012001','许敏','女','1992/03/18')
insertintostudentvalues('2012002','王鹏','男','1996/12/28')
insertintostudentvalues('2012003','张垒','男','1988/01/13')
insertintostudentvalues('2012004','李小红','女','1993/06/22')
insertintostudentvalues('2012005','张哲','男','1992/12/30')
insertintostudentvalues('2012006','张强','男','1989/01/06')
insertintostudentvalues('2012007','刘敏红','女','1988/12/02')
insertintouserloginvalues('admin','123456')
insertintouserloginvalues('zhangsan','123456')
insertintouserloginvalues('lisi','123456')
这里面有两张表,一张是学生表,一张是登录表,里面是用户名和密码。
3,这是会发现在E盘创建的文件家里出现了两个文件,一个是数据库文件一个是数据库日志文件。
就这样后台数据库就创建好了。
(大家也可以根据自己的需要来修改)
【第二部分:
创建登陆窗口】
1,,打开isualstudio2008,文件——》新建——》项目。
2,左边点击visualc#,右边点击window窗体应用程序。
3,名称改为studentMIS,位置根据自己情况而定。
一定要在创建解决方案的目录前面打钩。
4,这时界面有一个Form1窗体了。
下面我们要做的就是设置三层架构了。
简单的说就是添加三个类库。
5,三个类库分别是是BBL(逻辑判断层,我们一般用不到,也可以不添加),DAL(数据操作层,操作数据库的代码都写在这里),MODEL(联系层与层之间的关系)
6,点击文件——》添加——》新建项目——》类库。
名称改为DAL。
点击文件——》添加——》新建项目——》类库。
名称改为MODEL。
这里不需要用到BBL层,所以就不添加了。
7,前面的步骤就把这次试验的基本架构弄好了,下面要弄的就是添加事件了,怎么登录和连接后台数据库,以及对数据库的修改。
8,展开用边的studentMIS,选中Form1,重命名为formlogin.cs,双击formlogin,点击视图——》属性窗口。
在出现的属性窗口中将text后面的Form1改为登录。
看看(name)后面是否为formlogin,(这就相当与是这个登录窗口的ID,唯一表示这个窗体,以后所创建的每一个窗体都有一个在试验中唯一的名字来表示自己)。
9,下面来添加窗体的控件按钮。
点击视图——》工具箱,展开所有windows窗体。
左键单击Label控件,按后把鼠标放在我们登录窗体中空白位置左键点击一下,就会发现登录窗体中出现了一个label1的字样,用同样的办法就会发现出现了label2.鼠标点中label1,在属性窗口将text后面的改为用户名。
鼠标点中label2,在属性窗口中将text后面的改为密码。
10,在工具箱中找到TextBox控件。
同样方法鼠标单击,然后在登录窗体中空白位置单击鼠标左键,就会出现编辑框,用鼠标左键选中编辑框,在属性窗口中将(name)后面的改为txtboxusername.用同样的方法再添加一个编辑框控件,在属性窗口中将(name)后面的改为txtboxpassword。
11,现在添加按钮控件,在工具箱中找到Button控件,左键单击,然后在登录窗体中的空白位置单击左键,选中按钮控件,在他的属性窗口中将text后面的改为登录,将(name)后面的改为btnlogin。
用同样的方法再添加一个按钮控件,讲将text后面的改为取消,将(name)后面的改为btncancel。
12,经过12个步骤我们就创建好了一个登陆窗口。
【第三部分:
连接数据库登陆】
1,在建立数据库的连接前先说一下本人对于这个连接后台数据库的原理的理解。
在我们在登陆窗口的编辑框里输入用户名和密码后点击登陆时,在登陆事件里我们通过MODEL层函数UserInformation将我们输入的信息传到DAL层的getUserInformation函数内,该函数的功能是传过来的信息与我们开始在后台数据库里保存的用户名和密码进行对比,如果对比成功就会显示登陆成功,这样就可以打开另一个窗口了,然后就可以进行操作,否则显示登陆失败。
2,首先我们来实现后台数据库对比我们输入信息的代码。
展开DAL层,删除class1.cs(其实我们也可以直接改名而不用删除的,为了更好的演示,我们还是自己创建比较好),选中DAL,点击右键——》添加——》新建项。
在弹出的对话框左边选择C#项,右边选择类。
名称改为Dal.cs。
3,展开DAL层,双击Dal.cs,进入了编辑框,这里面写一些操作数据库的代码,在class前面加上public,在Dal类中添加如下代码。
下面代码的作用是将你输入的信息和数据库里信息对比,如果正确就返回1,显示登陆成功,如果不正确就不返回1,显示登陆失败。
publicstaticintgetUserInformation(UserInformationuser)
{
stringconnstr=@"server=.;database=student;integratedsecurity=sspi";
using(SqlConnectionconn=newSqlConnection(connstr))
{
conn.Open();
using(SqlCommandcmd=conn.CreateCommand())
{
cmd.CommandText="selectcount(*)fromuserloginwhereusername=@nameandpassword=@pwd";
cmd.Parameters.Add(newSqlParameter("@name",user.getUserName()));
cmd.Parameters.Add(newSqlParameter("@pwd",user.getPassword()));
intcount=Convert.ToInt32(cmd.ExecuteScalar());
returncount;
}
}
}
输入代码是要注意左边大括号和右边大括号的个数要相等。
下面都是遵循这个原则的,在后面我就不多说了。
4,接下来我们要在MODEL层里创建一个UserInformation类,方法如上,名称改为UserInformation.cs。
建好后双击进入编辑框,在classUserInformation前加上public,类中添加如下代码
privatestringusername;
privatestringpassword;
publicUserInformation(stringusername,stringpassword)
{
this.username=username;
this.password=password;
}
publicstringgetUserName(){returnusername;}
publicstringgetPassword(){returnpassword;}
5,在我们点击登陆时如果登陆成功,应该跳转到另一个窗口,多以首先我们应该创建一个新窗体,学生管理系统。
选中studentMIS,右键——》添加——》新建项。
选择windows窗体。
名称改为formmain.cs。
创建好后在属性框中将text后面改为学生管理系统。
6,双击formlogin.cs。
双击登陆按钮进入编辑框,输入如下代码
UserInformationuser=newUserInformation(txtboxusername.Text.Trim(),txtboxpassword.Text.Trim());
intcount=DAL.Dal.getUserInformation(user);
if(count==1)
{
newformmain().Show();
this.Hide();
}
else
{
MessageBox.Show("错误的用户名或密码!
");
txtboxusername.Text="";//清空
txtboxpassword.Text="";
txtboxusername.Focus();//获取焦点
}
7,双击formlogin放回到登陆窗口,双击取消,输入代码this.Close();。
8,现在我们可以开始调试了,看看能不能成功,左键选中studentMIS,点击调试——》启动调试。
9,这是我们会发现调试不成功,点击否,出现4个错误,什么缺少应用之类的。
出现这样的错误原因是,我们没有应用,这就好像我们写程序而没有写头文件一样。
该怎么解决呢,很简单。
选中DAL,右键——》添加引用——》项目,点击MODEL,确定。
选中studentMIS,右键——》添加引用——》项目,点击DAL,确定,选中studentMIS,右键——》添加引用——》项目,点击MODEL。
确定
10,进过第九步还没有解决问题,双击Dal.cs。
在最上面加上usingMODEL;usingSystem.Data.SqlClient;。
双击登陆进入编辑框,在最上面添加usingDAL;usingMODEL;
11,这时我们早调试一遍,在弹出的登陆窗口中输入用户名和密码,点击登陆后会弹出一个新的窗口,学生管理系统。
12到这里我们连接后台数据库登陆就做成功了。
下面我们需要做的就是在学生管理系统窗口添加一些控件来显示后台数据库的学生表信息,以及对数据库增删查改操作的控件。
【第四部分数学生管理系统添加控件】
1,现在我们先来试一试在学生管理系统显示数据库中学生表中的信息,双击formmain.cs,在工具箱中找到DataGridView控件,在学生管理系统窗体中添加这个控件,在属性窗口中将(name)后面的改为dgv。
下面我,们就开始来写代码了。
2,需要输出数据库中的表,对数据库操作,需要在DAL中写代码。
展开DAL,双击Dal,cs进入编辑页面,添加下面代码
publicstaticDataTablereturnTable()
{
stringconnstr=@"server=.;database=student;integratedsecurity=sspi";
stringsql="select*fromstudent";
using(SqlConnectionconn=newSqlConnection(connstr))//连接数据库的字符串
{
conn.Open();//打开对数据库的连接
using(SqlDataAdapteradapter=newSqlDataAdapter(sql,connstr))
{
//数据的适配器,负责填充数据
DataTabletable=newDataTable();
adapter.Fill(table);
returntable;
}
}
}
代码的作用是返回数据库中的学生表。
3,鼠标选中学生管理系统窗体,双击进入编辑页面,输入一下代码。
dgv.DataSource=DAL.Dal.returnTable();
在最上面添加usingSystem.Data;。
下面我们就可以来调试一下,发现在学生管理系统上出现了数据库中的学生表了。
调试成功。
4,虽然调试成功了,只是显示学生表,我们可以加一些修饰来移动表里的记录,比如说上一记录,下一记录,首记录,尾记录等等。
下面我们就开始来实现这些功能。
5,首先在DataGridView控件下面添加4个Button按钮控件,属性框的text分别为首记录,尾记录,上一记录,下一记录。
(name)后面分别改为btnfirst,btnlast,btnprevious,btnnext。
6,下面就来实现事件了,首先鼠标选中学生管理系统窗体,双击进入编辑页面,在studentMIS的命名空间先添加如下代码,值得注意的是不是添加在studentMIS的命名空间的里面任何一个类里。
BindingSourcebs=newBindingSource();
7,返回学生管理系统窗体,双击首记录进入代码编辑区,添加代码bs.MoveFirst();。
双击尾记录进入代码编辑区,添加代码bs.MoveLast();。
双击上一记录进入代码编辑区,添加代码bs.MovePrevious();。
双击下一记录进入代码编辑区,添加代码bs.MoveNext();。
下面我们来调试一下看看怎么样。
发现四个按钮没用,怎么回事?
?
不急,这是因为我们在显示学生表示是直接调用returnTable();的。
双击dgv控件进入编辑区,用bs.DataSource=DAL.Dal.returnTable();
dgv.DataSource=bs;来替换原来的gv.DataSource=DAL.Dal.returnTable()。
下面我们再来调试一下,成功了。
8,这回我们再来添加一个修饰,显示当前用户。
首先在学生管理系统窗体添加一个label控件(放在什么地方随便你们),在属性框中将text改为当前用户。
再添加一个label控件放在其后,将属性框中的text后面字母删除。
(name)后面改为lbltip。
9,显示当前用户为静态的,所以需要在studentMIS下创建一个类,右键——》添加——》新建项——》类。
名称改为common。
双击common,添加代码publicstaticstringusername;。
在classcommon前添加public,和上面一样,把这些类设为公共类,这样别的函数就可以访问了。
10,返回学生管理系统窗体,双击窗体添加代码,lbltip.Text=common.username;。
调试一下看看结果怎么样。
【数据库的增删查改操作】
1,前面我们实现了连接数据库的登陆以及显示数据库中的表。
这回我们来实现如何操作数据库中的数据。
2,首先我们双击formmain进入学生管理系统窗体,在工具箱中的菜单和工具栏中点击MenuStrip控件,添加到窗体的dgv控件的上面。
我们可以在第一个标题中输入“系统”,在其下拉空格中输入,注销和退出。
在第二个标题中输入“信息管理”,在其下拉空格中输入四个菜单选项,插入学生信息,删除学生信息,修改学生信息,查询学生信息。
(大家还可以根据自己的需要来添加菜单项,我们这里主要是实现增删查改,所以我们就不添加很多了。
)
3,到这一步了我们就可以为增删查改来添加窗体了,但是在这之前我要说一声,实现增删查改的过程中我们会不停的调试,如果每一次调试都需要输入用户名和密码会很麻烦的,既然我们的登陆窗口已经设计成功了,呢么接下来我们就不必每次太调试都运行登陆窗口了,我们可以暂时跳过这个窗口,等到程序完全结束后我们再来运行它。
双击studentMIS下面的Program.cs。
在代码Application.Run(newformlogin());前添加//,表示不运行他了,在其下面添加代码Application.Run(newformmain());,便是直接运行formmain这个窗口,也就是学生管理系统窗体。
下面天使一下看看,没有了登陆窗口,直接进入了学生管理窗口。
4,前面我们说过MODEL层是联系层与层之间联系的,我们登陆的用户名和密码先传到MODEL层中的UserInformation.cs中然后才传到DAL层中与数据库做对比的。
我们添加删除等操作也是这样的,比如我们添加学生信息,首先我们把信息传到MODEL层中的StudentInformation中最后DAL层中的StudentDAO调用StudentInformation就把我们输入的学生信息添加到数据库了。
5,那么首先我们要在MODEL层下面添加一个类名称为StudentInformation.cs。
双击进入编辑界面,在其前面添加public。
类中添加如下代码
privatestringsno;
privatestringsname;
privatestringsex;
privatestringbirthday;
publicStudentInformation(stringsno,stringsname,stringsex,stringbirthday)
{
this.sno=sno;
this.sname=sname;
this.sex=sex;
this.birthday=birthday;
}
publicstringgetSno(){returnsno;}
publicstringgetSname(){returnsname;}
publicstringgetSex(){returnsex;}
publicstringgetBirthday(){returnbirthday;}
代码的作用是,如果给StudentInformation创建一个对象,这个对象可以调用这个类里的函数输出参数。
6,当我们出入一条学生信息到数据库时我们需要在dgv控件中显示出来,那么我们就需要及时刷新数据库显示在dgv中。
我们可以学生管理系统窗体下创建一个刷新函数mybinding()。
双击学生管理窗体进入编辑页面,将privatevoidformmain_Load(objectsender,EventArgse)中的代码bs.DataSource=DAL.Dal.returnTable();
dgv.DataSource=bs;替换成mybinding();,在其上面输入以下代码
publicvoidmybinding()//刷新网格
{
bs.DataSource=DAL.Dal.returnTable();
dgv.DataSource=bs;
}
代码的功能是在后面的程序中只要调用mybinding()就可以刷新表格了,而不需要从新打开数据库才能显示操作的数据。
7,接下来我们要做的就是如何当我们点击插入学生信息按钮时就会弹出一个输入信息的对话框。
下面我们就在studentMIS下面添加一个windows窗体,名称改为formadd.cs,在属性框中将(name)后面改为formadd。
为其添加四个label控件分别命名为学号,姓名,性别,出生日期。
添加三TextBox控件分别放在学号,姓名出生日期后面(name)后面分别改为txtboxsno,txtboxsname,txtboxsbirthday,选择ComboBox控件放在性别后面,在属性框中将(name)后面改为cmbboxsex,text后面改为男。
再添加两个Button按钮,text后面改为录入,取消,(name)后面改为btninsert,btncancel。
8,双击插入学生信息,输入以下代码if(newformadd().ShowDialog()==DialogResult.OK)
{
mybinding();
}
代码的作用是显示我们创建的添加学生信息窗体,目前还不执行mybinding();,也就是说不能刷新数据库。
为什么呢当我们录入数据后点击录入按钮,这样添加信息窗体就会消失,这时我们开始调用mybinding();,但这我们还需要添加一行代码,当窗体消失时返回值为DialogResult.OK。
双击formadd,点击属性框上面的闪电标志,找到FormClosed,双击进入编辑页面,添加代码this.DialogResult=DialogResult.OK;。
这样当我们录入好学生信息后就会自动刷新网格了。
9,到这我们应该双击录入写代码了,可是大家别忘了,我们还没有对DAL层进行操作呢。
我们只是创建了模板,而没有真正实现插入数据到数据库中。
如果我们现在就调试录入信息,我们的信息只能传到MODEL层中的一个类中而不能被真正录入到数据库中,应为DAL层中还没有函数调用MODEL层中的学生信息。
下面我们就开始来实现怎么出入传来的数据到数据库中。
10,先在DAL层下面添加一个类名称改为StudentDAO.cs。
这是来实现插入数据到数据库的。
双击进入编辑区在类classStudentDAO前加上public,然后在类中添加如下代码publicstaticvoidinserStudent(StudentInformationstudent)
{
stringstrsql="insertintostudentvalues(@sno,@sname,@sex,@birthday)";
SqlParameter[]para=newSqlParame
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C# 连接 后台数据库 开发 学生 管理 系统 课程设计 过程 步骤 细化 极致