《数据库课程设计--成绩管理系统(23页).doc》由会员分享,可在线阅读,更多相关《数据库课程设计--成绩管理系统(23页).doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、-数据库课程设计-成绩管理系统-第 23 页实 习 报 告 实习名称: 数据结构与数据库课程设计 系部名称: 测绘工程学院 专业班级: 测绘11-3班 学生姓名: 黄第科 学 号: 20110222 指导教师: 梁 欣 黑龙江工程学院教务处制实习名称数据结构与数据库课程设计实习时间2012年 12 月 17 日 至 2012 年 12 月 28 日 共 2 周实习单位或实习地点实验楼601、606、612同组成员一人评分指标与分值实习态度 (工作态度是否积极,是否缺勤、违纪,团结、协作精神等)30分个人能力水平(完成任务的数量和质量,实际操作能力,对小组实习任务完成的贡献等)30分小组实习成果
2、质量,个人实习报告的质量(内容是否全面,结论是否正确,书写是否规范,体会是否深刻等)40分得 分总 分成绩等级评定9010080897079606960以下优良中及格不及格指导教师评语: 成 绩指导教师签字:年 月 日一、实习目的本次数据库课程设计是以Access数据库作为后台以C#作为前台的应用型设计课程。综合我们所学的两大课程创建应用型的数据库系统,大大的提高了我们学生的动手能力,作到了理论与实践相结合。二、实习仪器设备硬件环境Pentium 4以上微机,内存128MB以上,建议256MB。操作系统:Windows 7。编程环境 :C#程序设计语言,Access2003,通过ADO.NET
3、访问。三、实习原理、内容及步骤数据库截图:表页面:查询页面:Form1:登录窗体 Form2:学生登录页面Form11:教师登录页面修改密码成绩录入:修改成绩:四、实习中存在的问题、解决方法及进一步的想法等此次数据库课程设计过程中,遇到的主要问题总结如下:第一:看错误列表,如“找不到”成绩表“,后来问同学知道,是没有找到我要的数据,是我编写错误了,我在数据里写的是”成绩“表。第二:立数据库时,以为是在access里面建立各种窗体的,做了很多没用工,后来看了老师给我例子,才知道是vs上建立各种窗体的。第三:在C#中建立与access数据库连接时,直接提供路径,没有连接上,而后在连接数据库时在连接
4、句前加上字符相对于单一的连接语句更容易连接得上。把文件和源文件放在同一个文件内,写代码连接时更简单了第四:不知道怎样建立一个主窗体,让老师进入和学生进入能进行不同的内容,我怎么也建立不起来,后来建立两个主窗体,一个学生进入的主窗体,一个老师进入的主窗体。 第五:每次用到数据库时,都要建立连接,这样要写大量的代码,在项目里建立一个与数据库连接的类就,每次用到时,调用就行,五、实习心得体会通过本次课程设计,总的来说,受益菲浅,这些天中我们学到了很多东西,包括建表,导入数据,查询,插入,最重要的是我们有机会用电脑自己进行实践,开始认为它很难,后来在实践结合找资源,慢慢的都做出来了,遇到困难时一定不要
5、放弃,多去找书,多去向别人请教,多去实践问题对的。在这个过程中,我对C#建立窗体有了更深的认识,对.net有了了解,我还发现,想学好这个,英语也要好才行。我以后一定好好学英语,好好学数据库。 注:此报告为参考格式,各栏项目可根据实际情况进行调整。附:源代码Form1:登录窗体using System;using System.Collections.Generic;using System.Data.OleDb;using System.Linq;using System.Text;using System.Threading.Tasks;namespace amw class q publi
6、c static OleDbConnection con = new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=黄第科A.mdb);using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.OleDb;using System.Drawing;using System.Linq;using System.Text;using System.Threadin
7、g.Tasks;using System.Windows.Forms;namespace amw public partial class Form1 : Form public Form1() InitializeComponent(); private void button1_Click(object sender, EventArgs e) DataSet dataset = new DataSet(); /创建数据集 q.con.Open(); /打开连接 if (textBox1.Text.Trim() = ) / 验证是否输入了用户姓名 MessageBox.Show(用户名不能
8、为空); textBox1.Focus(); return; if (textBox2.Text.Trim() = )/ 验证是否输入了密码 MessageBox.Show(请输入密码); textBox2.Focus(); return; if (radioButton1.Checked = true) string OleDb = select count(*) from 密码 where 用户名= + textBox1.Text.Trim() + and 密码= + textBox2.Text.Trim() + and 用户类型=学生; OleDbCommand comm = new O
9、leDbCommand(OleDb, q.con); / 创建comm对象 int count = (int)comm.ExecuteScalar();/执行查询,并返回查询 if (count = 1)/判断是否存在这样一列 MessageBox.Show(登录成功!); this.Hide(); Form2 f2 = new Form2(); f2.Show(); else MessageBox.Show(不存在此用户); if (radioButton2.Checked = true) string OleDb =select count(*) from 密码 where 用户名= +
10、textBox1.Text.Trim() + and 密码= + textBox2.Text.Trim() + and 用户类型=老师; OleDbCommand comm = new OleDbCommand(OleDb, q.con); / 创建comm对象 int count = (int)comm.ExecuteScalar();/执行查询,并返回查询 if (count = 1)/判断是否存在这样一列 MessageBox.Show(登录成功!); this.Hide(); Form11 f2 = new Form11(); f2.Show(); else MessageBox.Sh
11、ow(不存在此用户);修改密码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.OleDb;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace amw public partial class 修改密码 : Form public 修改
12、密码() InitializeComponent(); private void button1_Click(object sender, EventArgs e) if (textBox1.Text.Trim() = | textBox2.Text.Trim() = | textBox3.Text.Trim() = | textBox4.Text.Trim() = ) MessageBox.Show(请填写完整信息!, 错误提示); else q.con.Close(); q.con.Open(); string OleDb = select *from 密码 where 用户名= + te
13、xtBox1.Text.Trim() + and 密码= + textBox2.Text.Trim() + ; OleDbCommand cmd = new OleDbCommand(, q.con); cmd.CommandText = OleDb; if (cmd.ExecuteScalar() = null) MessageBox.Show(用户名或密码错误!, 错误提示); else if (textBox3.Text.Trim() != textBox4.Text.Trim() MessageBox.Show(新密码和确认密码不一致,请重新输入!, 错误提示); else OleDb
14、 = update 密码 set 密码= + textBox3.Text.Trim() + where 用户名= + textBox1.Text.Trim() + ; cmd.CommandText = OleDb; cmd.ExecuteNonQuery(); q.con.Close(); this.Close(); MessageBox.Show(密码修改成功!, 成功提示); private void button2_Click(object sender, EventArgs e) q.con.Close(); this.Close();成绩录入:using System;using
15、System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.OleDb;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace amw public partial class 成绩录入 : Form public 成绩录入() InitializeComponent(); privat
16、e void button1_Click(object sender, EventArgs e) DataSet dataset = new DataSet(); /创建数据集 q.con.Open(); string xh = textBox1.Text.Trim(); string xm = textBox2.Text.Trim(); int cn = int.Parse(textBox3.Text.Trim(); string OleDbstring = insert into 成绩 values( + xh + , + xm + , + cn + ); OleDbCommand old
17、comm = new OleDbCommand(OleDbstring, q.con); int n = oldcomm.ExecuteNonQuery(); if (n = 1) MessageBox.Show(记录已成功添加到表中); q.con.Close(); private void button2_Click(object sender, EventArgs e) this.Close();修改成绩:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;
18、using System.Data.OleDb;using System.Drawing;using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace amw public partial class 成绩修改 : Form public 成绩修改() InitializeComponent(); CurrencyManager cz; private void button1_Click(object sender, EventArgs e) cz.P
19、osition = 0; private void 成绩修改_Load(object sender, EventArgs e) string CString = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=黄第科A.mdb; string OleDbstring = select * from 成绩 ; OleDbConnection MyCon = new OleDbConnection(CString); /创建连接对象 MyCon.Open(); OleDbDataAdapter oda = new OleDbDataAdapter(OleD
20、bstring, CString); DataSet dataset = new DataSet(); oda.Fill(dataset, 成绩); textBox1.DataBindings.Add(Text, dataset, 成绩.学号); textBox2.DataBindings.Add(Text, dataset, 成绩.课程编号); textBox3.DataBindings.Add(Text, dataset, 成绩.成绩); cz = (CurrencyManager)this.BindingContextdataset, 成绩; cz.Position = 0; priva
21、te void button2_Click(object sender, EventArgs e) if (this.cz.Position = 0) MessageBox.Show(已经是第一条记录, 信息提示, MessageBoxButtons.OK, MessageBoxIcon.Information); return; else this.cz.Position-; private void button3_Click(object sender, EventArgs e) if (this.cz.Position = this.cz.Count - 1) MessageBox.S
22、how(已经是末一条记录, 信息提示, MessageBoxButtons.OK, MessageBoxIcon.Information); return; else this.cz.Position+;成绩查询:using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Data.OleDb;using System.Drawing;using System.Linq;using System.Text;using System.Threadi
23、ng.Tasks;using System.Windows.Forms;namespace amw public partial class 成绩查询 : Form public 成绩查询() InitializeComponent(); private void 成绩查询_Load(object sender, EventArgs e) / TODO: 这行代码将数据加载到表“黄第科ADataSet.成绩表”中。您可以根据需要移动或删除它。 this.成绩表TableAdapter.Fill(this.黄第科ADataSet.成绩表); private void button2_Click(
24、object sender, EventArgs e) string connstring = provider=microsoft.Jet.OLEDB.4.0;DaTa Source=黄第科A.mdb; string Sqlstring = select 学号 as 学号,课程编号 as 课程编号 ,成绩 as 成绩 from 成绩表 where 成绩=60; OleDbConnection oldconn = new OleDbConnection(connstring); oldconn.Open(); OleDbDataAdapter oda = new OleDbDataAdapte
25、r(Sqlstring, connstring); DataSet ds = new DataSet(); oda.Fill(ds, ScoreInfo); dataGridView1.DataSource = ds.TablesScoreInfo; string sql = select count(*) from 成绩表 where 成绩=60; label1.Text = 及格人数有 + sql.ToString(); private void button4_Click(object sender, EventArgs e) this.Close(); private void but
26、ton3_Click(object sender, EventArgs e) string connstring = provider=microsoft.Jet.OLEDB.4.0;DaTa Source=黄第科A.mdb; string Sqlstring = select 学号 as 学号,课程编号 as 课程编号 ,成绩 as 成绩 from 成绩表 where 成绩60; OleDbConnection oldconn = new OleDbConnection(connstring); oldconn.Open(); OleDbDataAdapter oda = new OleDb
27、DataAdapter(Sqlstring, connstring); DataSet ds = new DataSet(); oda.Fill(ds, ScoreInfo); dataGridView1.DataSource = ds.TablesScoreInfo; string sql = select count(*) from 成绩表 where 成绩60; label1.Text = 及格人数有 + sql.ToString(); private void button1_Click(object sender, EventArgs e) string connstring = p
28、rovider=microsoft.Jet.OLEDB.4.0;DaTa Source=黄第科A.mdb; string Sqlstring = select 学号 as 学号,课程编号 as 课程编号 ,成绩 as 成绩 from 成绩表 where 学号= + comboBox1.Text.Trim() + ; OleDbConnection oldconn = new OleDbConnection(connstring); oldconn.Open(); OleDbDataAdapter oda = new OleDbDataAdapter(Sqlstring, connstring)
29、; DataSet ds = new DataSet(); oda.Fill(ds, 成绩表); dataGridView1.DataSource = ds.Tables成绩表;学生信息查询:using System.Linq;using System.Text;using System.Threading.Tasks;using System.Windows.Forms;namespace amw public partial class 信息查询 : Form CurrencyManager ca; public 信息查询() InitializeComponent(); private
30、void 信息查询_Load(object sender, EventArgs e) string connstring = Provider=Microsoft.Jet.OLEDB.4.0;Data Source=黄第科A.mdb; string sqlstring = select * from 学生信息表; OleDbConnection oldconn = new OleDbConnection(connstring); oldconn.Open(); OleDbDataAdapter oda = new OleDbDataAdapter(sqlstring, connstring);
31、 DataSet ds = new DataSet(); oda.Fill(ds, 学生信息表); textBox1.DataBindings.Add(Text, ds, 学生信息表.学号); textBox2.DataBindings.Add(Text, ds, 学生信息表.姓名); textBox6.DataBindings.Add(Text, ds, 学生信息表.性别); textBox3.DataBindings.Add(Text, ds, 学生信息表.日期); textBox4.DataBindings.Add(Text, ds, 学生信息表.班级); ca = (CurrencyM
32、anager)this.BindingContextds, 学生信息表; ca.Position = 0; private void button1_Click(object sender, EventArgs e) if (ca.Position = 0) MessageBox.Show(已经是第一条记录了, 信息提示, MessageBoxButtons.OK, MessageBoxIcon.Information); return; else ca.Position = 0; private void button2_Click(object sender, EventArgs e) c
33、a.Position-; private void button3_Click(object sender, EventArgs e) if (ca.Position = ca.Count - 1) MessageBox.Show(已经是最后一条记录, 信息提示, MessageBoxButtons.OK, MessageBoxIcon.Information); return; else ca.Position+; private void button4_Click(object sender, EventArgs e) ca.Position = ca.Count - 1; privat
34、e void button5_Click(object sender, EventArgs e) this.Close();Form3:添加学生信息页面源代码using System;using System.Data.OleDb; using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;namespace WindowsFor
35、msApplication2 public partial class Form3 : Form public Form3() InitializeComponent(); public void Form3_Load(object sender, EventArgs e) public void button2_Click(object sender, EventArgs e) public void button1_Click(object sender, EventArgs e) private void button1_Click_1(object sender, EventArgs
36、e) if (textBox1.Text.Trim() = ) MessageBox.Show(你填写的信息不完整,请继续填写完整!, 错误提示); else C.Open(); OleDbCommand comm = new OleDbCommand(, C); / 创建comm对象 string OleDb = select 学号 from 学生信息表 where 学号= + textBox1.Text.Trim() + ; comm.CommandText = OleDb; if (comm.ExecuteScalar() = null) OleDb = insert into 学生信息表 values( + textBox1.Text.Trim() + , + textBox2.Text.Trim() + , + textBox8.Text.Trim() + , + textBox3.Text.Trim() + , + textBox4.Text.Trim() + , + textBox5.Text.Trim() + , + textBox6.Text.Trim() + , + textBox7.Text.Trim();