收藏 分销(赏)

C#连接后台数据库开发学生管理系统课程设计-过程步骤细化到极致.docx

上传人:仙人****88 文档编号:5982954 上传时间:2024-11-24 格式:DOCX 页数:12 大小:34.24KB
下载 相关 举报
C#连接后台数据库开发学生管理系统课程设计-过程步骤细化到极致.docx_第1页
第1页 / 共12页
C#连接后台数据库开发学生管理系统课程设计-过程步骤细化到极致.docx_第2页
第2页 / 共12页
C#连接后台数据库开发学生管理系统课程设计-过程步骤细化到极致.docx_第3页
第3页 / 共12页
C#连接后台数据库开发学生管理系统课程设计-过程步骤细化到极致.docx_第4页
第4页 / 共12页
C#连接后台数据库开发学生管理系统课程设计-过程步骤细化到极致.docx_第5页
第5页 / 共12页
点击查看更多>>
资源描述

1、王L让我们弄个课程设计,才讲两节课就撒手不管了。还说简单,简单个JB。对他来说当然简单了,对我这样的菜鸟来说简直是难如登天,我相信像我这样的菜鸟肯定还有,只有菜鸟才知道菜鸟的辛苦,为了让这些菜鸟们不再辛苦了,我把所有的实验过程一步一步都给写了出来,细化到最简单,只要是个人都能看懂的。不能保证我的过程都是对了,我也是摸着石头过了河,在菜鸟们还没有看到桥的时候不妨也摸着石头走一趟吧。下面步骤中的一些东西是本人的看法,如果错了也不必吐糟,毕竟哥还是个初级菜鸟。【第一部分:创建数据库】1,在自己的E盘建立一个名为课程设计数据库的文件夹。2,打开sql server 2008,点击新建查询,在右边的编辑

2、框里输入如下代码点击执行。create database student onprimary(name=student_dat,filename=E:课程设计数据库student.mdf,size=5MB,maxsize=50,filegrowth=2MB)log on(name=教学管理数据库_log,filename=E:课程设计数据库student.ldf,size=5MB,maxsize=100MB,filegrowth=2MB)gouse studentgoCREATE TABLE student(sno NVARCHAR(10) PRIMARY KEY,sname NVARCHAR

3、(8),ssex NVARCHAR(1),sbirthday NVARCHAR(10)create table userlogin( username NVARCHAR(8) primary key, password nvarchar(20) NOT NULL)insert into student values(2012001,许敏,女,1992/03/18)insert into student values(2012002,王鹏,男,1996/12/28)insert into student values(2012003,张垒,男,1988/01/13)insert into stu

4、dent values(2012004,李小红,女,1993/06/22)insert into student values(2012005,张哲,男,1992/12/30)insert into student values(2012006,张强,男,1989/01/06)insert into student values(2012007,刘敏红,女,1988/12/02)insert into userlogin values(admin,123456)insert into userlogin values(zhangsan,123456)insert into userlogin

5、values(lisi,123456)这里面有两张表,一张是学生表,一张是登录表,里面是用户名和密码。3,这是会发现在E盘创建的文件家里出现了两个文件,一个是数据库文件一个是数据库日志文件。就这样后台数据库就创建好了。(大家也可以根据自己的需要来修改)【第二部分:创建登陆窗口】1,,打开isual studio 2008,文件新建项目。2,左边点击visual c#,右边点击window窗体应用程序。3,名称改为studentMIS,位置根据自己情况而定。一定要在创建解决方案的目录前面打钩。4,这时界面有一个Form1窗体了。下面我们要做的就是设置三层架构了。简单的说就是添加三个类库。5,三个

6、类库分别是是BBL(逻辑判断层,我们一般用不到,也可以不添加),DAL(数据操作层,操作数据库的代码都写在这里),MODEL(联系层与层之间的关系)6,点击文件添加新建项目类库。名称改为DAL。点击文件添加新建项目类库。名称改为MODEL。这里不需要用到BBL层,所以就不添加了。7,前面的步骤就把这次试验的基本架构弄好了,下面要弄的就是添加事件了,怎么登录和连接后台数据库,以及对数据库的修改。8,展开用边的studentMIS,选中Form1,重命名为formlogin.cs,双击formlogin,点击视图属性窗口。在出现的属性窗口中将text后面的Form1改为登录。看看(name)后面是

7、否为formlogin,(这就相当与是这个登录窗口的ID,唯一表示这个窗体,以后所创建的每一个窗体都有一个在试验中唯一的名字来表示自己)。9,下面来添加窗体的控件按钮。点击视图工具箱,展开所有windows窗体。左键单击Label控件,按后把鼠标放在我们登录窗体中空白位置左键点击一下,就会发现登录窗体中出现了一个label1的字样,用同样的办法就会发现出现了label2.鼠标点中label1,在属性窗口将text后面的改为用户名。鼠标点中label2,在属性窗口中将text后面的改为密码。10,在工具箱中找到TextBox控件。同样方法鼠标单击,然后在登录窗体中空白位置单击鼠标左键,就会出现编

8、辑框,用鼠标左键选中编辑框,在属性窗口中将(name)后面的改为txtboxusername.用同样的方法再添加一个编辑框控件,在属性窗口中将(name)后面的改为txtboxpassword。11,现在添加按钮控件,在工具箱中找到Button控件,左键单击,然后在登录窗体中的空白位置单击左键,选中按钮控件,在他的属性窗口中将text后面的改为登录,将(name)后面的改为btnlogin。用同样的方法再添加一个按钮控件,讲将text后面的改为取消,将(name)后面的改为btncancel。12,经过12个步骤我们就创建好了一个登陆窗口。【第三部分:连接数据库登陆】1,在建立数据库的连接前先

9、说一下本人对于这个连接后台数据库的原理的理解。在我们在登陆窗口的编辑框里输入用户名和密码后点击登陆时,在登陆事件里我们通过MODEL层函数UserInformation将我们输入的信息传到DAL层的getUserInformation函数内,该函数的功能是传过来的信息与我们开始在后台数据库里保存的用户名和密码进行对比,如果对比成功就会显示登陆成功,这样就可以打开另一个窗口了,然后就可以进行操作,否则显示登陆失败。2,首先我们来实现后台数据库对比我们输入信息的代码。展开DAL层,删除class1.cs(其实我们也可以直接改名而不用删除的,为了更好的演示,我们还是自己创建比较好),选中DAL,点击

10、右键添加新建项。在弹出的对话框左边选择C#项,右边选择类。名称改为Dal.cs。3,展开DAL层,双击Dal.cs,进入了编辑框,这里面写一些操作数据库的代码,在class前面加上public,在Dal类中添加如下代码。下面代码的作用是将你输入的信息和数据库里信息对比,如果正确就返回1,显示登陆成功,如果不正确就不返回1,显示登陆失败。public static int getUserInformation(UserInformation user) string connstr = server=.;database=student;integrated security=sspi; usi

11、ng (SqlConnection conn = new SqlConnection(connstr) conn.Open(); using(SqlCommand cmd=conn.CreateCommand() cmd.CommandText = select count(*) from userlogin where username=name and password=pwd; cmd.Parameters.Add(new SqlParameter(name,user.getUserName(); cmd.Parameters.Add(new SqlParameter(pwd,user.

12、getPassword(); int count= Convert.ToInt32(cmd.ExecuteScalar(); return count; 输入代码是要注意左边大括号和右边大括号的个数要相等。下面都是遵循这个原则的,在后面我就不多说了。4,接下来我们要在MODEL层里创建一个UserInformation类,方法如上,名称改为UserInformation.cs。建好后双击进入编辑框,在class UserInformation前加上public,类中添加如下代码private string username; private string password; public Us

13、erInformation(string username,string password) this.username = username; this.password = password; public string getUserName() return username; public string getPassword() return password; 5,在我们点击登陆时如果登陆成功,应该跳转到另一个窗口,多以首先我们应该创建一个新窗体,学生管理系统。选中studentMIS,右键添加新建项。选择windows窗体。名称改为formmain.cs。创建好后在属性框中将t

14、ext后面改为学生管理系统。6,双击formlogin.cs。双击登陆按钮进入编辑框,输入如下代码UserInformation user = new UserInformation(txtboxusername.Text.Trim(), txtboxpassword.Text.Trim(); int count=DAL.Dal.getUserInformation(user); if(count=1) new formmain().Show(); this.Hide(); else MessageBox.Show(错误的用户名或密码!); txtboxusername.Text = ;/清空

15、 txtboxpassword.Text = ; txtboxusername.Focus();/获取焦点 7,双击formlogin放回到登陆窗口,双击取消,输入代码 this.Close();。8,现在我们可以开始调试了,看看能不能成功,左键选中studentMIS,点击调试启动调试。9,这是我们会发现调试不成功,点击否,出现4个错误,什么缺少应用之类的。出现这样的错误原因是,我们没有应用,这就好像我们写程序而没有写头文件一样。该怎么解决呢,很简单。选中DAL,右键添加引用项目,点击MODEL,确定。选中studentMIS,右键添加引用项目,点击DAL,确定,选中studentMIS,右

16、键添加引用项目,点击MODEL。确定10,进过第九步还没有解决问题,双击Dal.cs。在最上面加上using MODEL;using System.Data.SqlClient;。双击登陆进入编辑框,在最上面添加using DAL;using MODEL; 11,这时我们早调试一遍,在弹出的登陆窗口中输入用户名和密码,点击登陆后会弹出一个新的窗口,学生管理系统。12到这里我们连接后台数据库登陆就做成功了。下面我们需要做的就是在学生管理系统窗口添加一些控件来显示后台数据库的学生表信息,以及对数据库增删查改操作的控件。【第四部分数学生管理系统添加控件】1,现在我们先来试一试在学生管理系统显示数据库

17、中学生表中的信息,双击formmain.cs,在工具箱中找到DataGridView控件,在学生管理系统窗体中添加这个控件,在属性窗口中将(name)后面的改为dgv。下面我,们就开始来写代码了。2,需要输出数据库中的表,对数据库操作,需要在DAL中写代码。展开DAL,双击Dal,cs进入编辑页面,添加下面代码 public static DataTable returnTable() string connstr = server=.;database=student;integrated security=sspi; string sql=select * from student; us

18、ing (SqlConnection conn = new SqlConnection(connstr)/连接数据库的字符串 conn.Open();/打开对数据库的连接 using (SqlDataAdapter adapter = new SqlDataAdapter(sql,connstr) /数据的适配器,负责填充数据 DataTable table = new DataTable(); adapter.Fill(table); return table; 代码的作用是返回数据库中的学生表。3,鼠标选中学生管理系统窗体,双击进入编辑页面,输入一下代码。dgv.DataSource= D

19、AL.Dal.returnTable();在最上面添加using System.Data;。下面我们就可以来调试一下,发现在学生管理系统上出现了数据库中的学生表了。调试成功。4,虽然调试成功了,只是显示学生表,我们可以加一些修饰来移动表里的记录,比如说上一记录,下一记录,首记录,尾记录等等。下面我们就开始来实现这些功能。5,首先在DataGridView控件下面添加4个Button按钮控件,属性框的text分别为首记录,尾记录,上一记录,下一记录。(name)后面分别改为btnfirst,btnlast,btnprevious,btnnext。6,下面就来实现事件了,首先鼠标选中学生管理系统窗

20、体,双击进入编辑页面,在studentMIS的命名空间先添加如下代码,值得注意的是不是添加在studentMIS的命名空间的里面任何一个类里。BindingSource bs = new BindingSource();7,返回学生管理系统窗体,双击首记录进入代码编辑区,添加代码bs.MoveFirst();。双击尾记录进入代码编辑区,添加代码bs.MoveLast();。双击上一记录进入代码编辑区,添加代码bs.MovePrevious();。双击下一记录进入代码编辑区,添加代码 bs.MoveNext();。下面我们来调试一下看看怎么样。发现四个按钮没用,怎么回事?不急,这是因为我们在显示

21、学生表示是直接调用returnTable();的。双击dgv控件进入编辑区,用bs.DataSource = DAL.Dal.returnTable(); dgv.DataSource = bs;来替换原来的gv.DataSource= DAL.Dal.returnTable()。下面我们再来调试一下,成功了。8,这回我们再来添加一个修饰,显示当前用户。首先在学生管理系统窗体添加一个label控件(放在什么地方随便你们),在属性框中将text改为当前用户。再添加一个label控件放在其后,将属性框中的text后面字母删除。(name)后面改为lbltip。9,显示当前用户为静态的,所以需要在s

22、tudentMIS下创建一个类,右键添加新建项类。名称改为common。双击common,添加代码public static string username;。在class common前添加public,和上面一样,把这些类设为公共类,这样别的函数就可以访问了。10,返回学生管理系统窗体,双击窗体添加代码,lbltip.Text = common.username;。调试一下看看结果怎么样。【数据库的增删查改操作】1,前面我们实现了连接数据库的登陆以及显示数据库中的表。这回我们来实现如何操作数据库中的数据。2,首先我们双击formmain进入学生管理系统窗体,在工具箱中的菜单和工具栏中点击M

23、enuStrip控件,添加到窗体的dgv控件的上面。我们可以在第一个标题中输入“系统”,在其下拉空格中输入,注销和退出。在第二个标题中输入“信息管理”,在其下拉空格中输入四个菜单选项,插入学生信息,删除学生信息,修改学生信息,查询学生信息。(大家还可以根据自己的需要来添加菜单项,我们这里主要是实现增删查改,所以我们就不添加很多了。)3,到这一步了我们就可以为增删查改来添加窗体了,但是在这之前我要说一声,实现增删查改的过程中我们会不停的调试,如果每一次调试都需要输入用户名和密码会很麻烦的,既然我们的登陆窗口已经设计成功了,呢么接下来我们就不必每次太调试都运行登陆窗口了,我们可以暂时跳过这个窗口,

24、等到程序完全结束后我们再来运行它。双击studentMIS下面的Program.cs。在代码 Application.Run(new formlogin();前添加/,表示不运行他了,在其下面添加代码Application.Run(new formmain();,便是直接运行formmain这个窗口,也就是学生管理系统窗体。下面天使一下看看,没有了登陆窗口,直接进入了学生管理窗口。4,前面我们说过MODEL层是联系层与层之间联系的,我们登陆的用户名和密码先传到MODEL层中的UserInformation.cs中然后才传到DAL层中与数据库做对比的。我们添加删除等操作也是这样的,比如我们添加学

25、生信息,首先我们把信息传到MODEL层中的StudentInformation中最后DAL层中的StudentDAO调用StudentInformation就把我们输入的学生信息添加到数据库了。5,那么首先我们要在MODEL层下面添加一个类名称为StudentInformation.cs。双击进入编辑界面,在其前面添加public。类中添加如下代码private string sno; private string sname; private string sex; private string birthday; public StudentInformation(string sno,s

26、tring sname,string sex,string birthday) this.sno = sno; this.sname = sname; this.sex = sex; this.birthday = birthday; public string getSno() return sno; public string getSname() return sname; public string getSex() return sex; public string getBirthday() return birthday; 代码的作用是,如果给StudentInformation

27、创建一个对象,这个对象可以调用这个类里的函数输出参数。6,当我们出入一条学生信息到数据库时我们需要在dgv控件中显示出来,那么我们就需要及时刷新数据库显示在dgv中。我们可以学生管理系统窗体下创建一个刷新函数mybinding()。双击学生管理窗体进入编辑页面,将private void formmain_Load(object sender, EventArgs e)中的代码bs.DataSource = DAL.Dal.returnTable(); dgv.DataSource = bs;替换成 mybinding();,在其上面输入以下代码 public void mybinding()

28、/刷新网格 bs.DataSource = DAL.Dal.returnTable(); dgv.DataSource = bs; 代码的功能是在后面的程序中只要调用mybinding()就可以刷新表格了,而不需要从新打开数据库才能显示操作的数据。7,接下来我们要做的就是如何当我们点击插入学生信息按钮时就会弹出一个输入信息的对话框。下面我们就在studentMIS下面添加一个windows窗体,名称改为formadd.cs,在属性框中将(name)后面改为formadd。为其添加四个label控件分别命名为学号,姓名,性别,出生日期。添加三TextBox控件分别放在学号,姓名出生日期后面(na

29、me)后面分别改为txtboxsno,txtboxsname,txtboxsbirthday,选择ComboBox控件放在性别后面,在属性框中将(name)后面改为cmbboxsex,text后面改为男。再添加两个Button按钮,text后面改为录入,取消,(name)后面改为btninsert,btncancel。8,双击插入学生信息,输入以下代码if (new formadd().ShowDialog() = DialogResult.OK) mybinding(); 代码的作用是显示我们创建的添加学生信息窗体,目前还不执行mybinding();,也就是说不能刷新数据库。为什么呢?当我

30、们录入数据后点击录入按钮,这样添加信息窗体就会消失,这时我们开始调用mybinding();,但这我们还需要添加一行代码,当窗体消失时返回值为DialogResult.OK。双击formadd,点击属性框上面的闪电标志,找到FormClosed,双击进入编辑页面,添加代码this.DialogResult = DialogResult.OK;。这样当我们录入好学生信息后就会自动刷新网格了。9,到这我们应该双击录入写代码了,可是大家别忘了,我们还没有对DAL层进行操作呢。我们只是创建了模板,而没有真正实现插入数据到数据库中。如果我们现在就调试录入信息,我们的信息只能传到MODEL层中的一个类中而

31、不能被真正录入到数据库中,应为DAL层中还没有函数调用MODEL层中的学生信息。下面我们就开始来实现怎么出入传来的数据到数据库中。10,先在DAL层下面添加一个类名称改为StudentDAO.cs。这是来实现插入数据到数据库的。双击进入编辑区在类class StudentDAO前加上public,然后在类中添加如下代码 public static void inserStudent(StudentInformation student) string strsql = insert into student values(sno,sname,sex,birthday); SqlParamete

32、r para = new SqlParameter new SqlParameter(sno,SqlDbType.NVarChar), new SqlParameter(sname,SqlDbType.NVarChar), new SqlParameter(sex,SqlDbType.NVarChar), new SqlParameter(birthday,SqlDbType.NVarChar) ; int i = 0; parai+.Value = student.getSno(); parai+.Value = student.getSname(); parai+.Value = stud

33、ent.getSex(); parai+.Value = student.getBirthday(); Dal.ExecuteNonQuery(strsql, para); 在最上面添加using MODEL;using System.Data.SqlClient;using System.Data;。这是添加学生的代码,删除修改之类的代码课依次向下添加。11,现在我们可以调试一下,发现显示一个错误,显示“DAL.Dal”并不包含“ExecuteNonQuery”的定义。这时我们需要在Dal.cs中添加一个ExecuteNonQuery。双击Dal进入编辑区,添加代码public static

34、 void ExecuteNonQuery(string strsql, params SqlParameter para) string connstr = server=.;database=student;integrated security=sspi; using(SqlConnection conn=new SqlConnection(connstr) conn.Open(); using(SqlCommand cmd=conn.CreateCommand() cmd.CommandText = strsql; cmd.Parameters.AddRange(para); cmd.

35、ExecuteNonQuery(); 一定要记住的是左大括号和右大括号个数要相等。12,现在我们调试一下发现成功了,接下来我们的任务就是编写录入事件的代码了,双击录入按钮进入编辑区。添加如下代码if (txtboxsno.Text = ) MessageBox.Show(学号不能为空); txtboxsno.Focus(); return; if (txtboxsname.Text = ) MessageBox.Show(姓名不能为空); txtboxsname.Focus(); return; /其实,还需要进一步判断:输入的学号与数据库中的学号是否重复 string sno = txtbo

36、xsno.Text.Trim(); string sname = txtboxsname.Text.Trim(); string sex = cmbboxsex.Text.Trim(); string day = txtboxsbirthday.Text.Trim(); StudentInformation student = new StudentInformation(sno,sname,sex,day); DAL.StudentDAO.inserStudent(student); txtboxsno.Text = ; txtboxsname.Text = ; txtboxsbirthda

37、y.Text = ; txtboxsno.Focus(); 在最上面添加using MODEL;,因为要使用到StudentInformation,添加后表示引用了MODEL;。13,下面来调试一下,随便添加一个就可以了。下面我们来实现删除事件。首先在studentMIS下面添加一个windows窗体,名称改为formdelete.cs。在窗体添加一个label控件,text改为 请输入要删除学生的学号。添加一个TextBox控件,将(name)后面改为txtboxsno。再添加两个Button控件,text分别为删除当前学生,清空数据库。14,首先我们要早DAL中的studentDAO中添加

38、删除学生信息的代码。双击studentDAO,cs进入编辑区,添加代码 public static void deleteStudent(string studentno) string strsql = delete from student where sno=no; SqlParameter para = new SqlParameter new SqlParameter(no,SqlDbType.NVarChar) ; para0.Value = studentno; Dal.ExecuteNonQuery(strsql,para); public static void clear(

39、) string strsql = delete from student; SqlParameter para = new SqlParameter ; Dal.ExecuteNonQuery(strsql,para); 14,双击菜单栏中的删除学生信息,添加代码 if (new formdelete().ShowDialog() = DialogResult.OK) mybinding(); 双击formdelete,点击属性框上面的闪电标志,找到FormClosed,双击进入编辑页面,添加代码this.DialogResult = DialogResult.OK;。这样当我们录入好学生信

40、息后就会自动刷新网格了。,15,双击删除当前学生按钮进入编辑框,添加代码 if (txtboxsno.Text = ) MessageBox.Show(请输入要删除的学生的学号:); txtboxsno.Focus(); return; /第二步:还要进一步判断输入的学号在数据库中能否找到 /大家自行完成 DAL.StudentDAO.deleteStudent(txtboxsno.Text.Trim(); MessageBox.Show(删除完毕); txtboxsno.Text = ; txtboxsno.Focus();16,双击清空数据库,添加代码 DialogResult dr = MessageBox.Show(请确认是否真的要清空学生数据库,警告,MessageBoxButtons.OKCancel,MessageBoxIcon.Information); if (dr =DialogResult.OK) DAL.StudentDAO.c

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 教育专区 > 小学其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服