版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、数据库系统原理与应用课程设计SPJ管理系统的开发与设计学院: 计算机科学与通信工程学院班级: 网络工程1102学号: 姓名: 指导教师:邢玉萍时间:2013年7月12日目录一、课程设计目的3二、课程设计要求3三、需求分析31)流程图2) 概念模型设计3)逻辑和物理结构设计4)数据库实施运行SQL Server 2008,建立数据库表 运行Visual Studio 2010 C#,建立Windows窗体并调试程序增加、删除、修改、查询、刷新、退出功能的实现四、心得体会18一、课程设计目的熟悉数据库的连接以及对数据库内数据的增删改查,学会结合前台开发工具与后台数据库进行简单的项目开发,能够通过学
2、习和查阅资料运用C#语言编写前台环境。二、课程设计要求通过前台开发工具Microsoft Visual Studio 2010,后台数据库SQL Server 2008运用C#语言开发SPJ管理系统三、需求分析SPJ管理系统包括供应商信息管理,零件信息管理,项目信息管理及供应情况管理,项目最低需求管理,零件库存管理等功能。具体功能有如下几个方面:1. 供应商信息的添加、修改、删除和查询;2. 零件信息的添加、修改、删除和查询;3. 项目信息的添加、修改、删除和查询;4. 供应情况管理,包括各供应商供应情况的添加、修改、删除和查询。5. 项目最低需求的添加、修改、删除和查询。 6.零件库存管理的
3、添加、修改、删除和查询。 7.筛选出库存零件不足的项目及根据需求增加库存等。添加选择操作删除修改查询刷新库存不足的零件不达标工程进入系统选择表供应商表零件表供应关系项目表库存量表工程最低要求退出系统1) 流程图2)概念模型设计由需求分析的结果可知,本系统设计的实体及联系包括:(1)供应商基本信息:供应商号,供应商名,状态,城市。(2)零件基本信息: 零件号,零件名,颜色,重量。(3)工程项目基本信息:项目号,项目名,城市。(4)供求关系基本信息:供应商号,零件号,项目号,供应数量。(5)零件库存信息:零件号,数量。(6)最低需求信息:项目号,零件号,数量。由上述分析可得到系统的ER图:供应商供
4、应商号供应商名状态城市库存零件零件号零件名颜色重量工程项目工程项目名工程项目名城市供应库存量需求需求量供应量3)逻辑和物理结构设计由系统ER图转化而得到的关系模式如下:(1)零件(零件号,零件名,颜色,重量),其主关键字为零件号;(2)供应商(供应商号,供应商名,状态,城市),其中主关键字为供应商号;(3)工程项目(工程项目号,工程项目名,城市),其主关键字为工程项目号;(4)供求关系(供应商号,零件号,项目号,供应数量),其主关键字为供应商号,零件号,项目号;(5)库存(零件号,库存量)其主关键字为零件号;(6)需求(项目号,零件号,所需零件数)其主关键字为项目号,零件号;根据设计好的E-R
5、图在数据库中建立各表供应商信息表:字段名数据类型长度主键描述SNOchar5是供应商号SNAMEchar10否供应商名STATUSchar4否 状态CITYchar10否城市零件信息表:字段名数据类型长度主键描述PNOchar5是零件号PNAMEchar10否零件名COLORchar10否颜色WEIGHTINT4否重量项目表:字段名数据类型长度主键描述JNOchar5是工程项目号JNAMEchar10否工程项目名CITYchar10否城市供应情况信息表:字段名数据类型长度主键描述SNOchar5是供应商号PNOchar5否零件号JNOchar5否 工程项目号QTYINT4否数量库存信息表:字段
6、名数据类型长度主键描述PNOchar5是零件号JNOChar5是工程项目号PQTYINT4否数量最低需求情况信息表:字段名数据类型长度主键描述PNOchar5是零件号JNOchar5是 工程项目号QTYINT4否所需零件数4)数据库实施1、运行SQL Server 2008,建立数据库表。建供应商表S;建零件表P;建项目表J;建供求关系表SPJ;建需求表工程最低要求;建库存表库存数量;直接创建表,设置主键和关系约束2、运行Visual Studio 2010 C#,建立如下窗体;主界面供应商S表窗口零件P表窗口工程项目J表窗口供求关系SPJ表窗口库存表窗口工程最低要求表窗口3、增加、删除、修改
7、、查询、刷新、退出功能的实现1.添加按钮,可实现数据的添加代码:privatevoid button1_Click(object sender, EventArgs e) if (textBox1.Text = string.Empty)MessageBox.Show("供应商号不能为空");elseif (textBox2.Text = string.Empty)MessageBox.Show("供应商名不能为空");elseif (textBox3.Text = string.Empty)MessageBox.Show("状态不能为空&qu
8、ot;);elseif (textBox4.Text = string.Empty)MessageBox.Show("城市不能为空");else string SNO = textBox1.Text, SNAME = textBox2.Text, STATUS = textBox3.Text, CITY = textBox4.Text;SqlConnection TC = newSqlConnection("Data Source=DAN-GISQLEXPRESS;Initial Catalog=DataBase_DG;Integrated Security=Tr
9、ue"); TC.Open();string sql = "insert into S(SNO,SNAME,STATUS,CITY) values(SNO,SNAME,STATUS,CITY)"SqlCommand cmd = newSqlCommand(sql, TC);SqlParameter tsno = newSqlParameter("SNO", SNO); cmd.Parameters.Add(tsno);SqlParameter tsna = newSqlParameter("SNAME", SNAME); c
10、md.Parameters.Add(tsna);SqlParameter tsta = newSqlParameter("STATUS", STATUS); cmd.Parameters.Add(tsta);SqlParameter tcit = newSqlParameter("CITY", CITY); cmd.Parameters.Add(tcit);int result = cmd.ExecuteNonQuery();if (result = 0)MessageBox.Show("添加失败");elseMessageBox.S
11、how("添加成功"); TC.Close(); cmd.Dispose(); 2.删除按钮,可实现数据的删除操作代码:privatevoid button1_Click(object sender, EventArgs e) SqlConnection TC = newSqlConnection("Data Source=DAN-GISQLEXPRESS;Initial Catalog=DataBase_DG;Integrated Security=True");try if (comboBox1.SelectedItem = "工程项目号&
12、quot;) TC.Open();string sql = "delete from J where JNO='" + textBox1.Text + "'"SqlCommand cmd = newSqlCommand(sql, TC);int n = (int)cmd.ExecuteNonQuery();if (n > 0) MessageBox.Show("删除成功"); else MessageBox.Show("删除失败"); elseif (comboBox1.SelectedIte
13、m = "工程项目名") TC.Open();string sql = "delete from J where JNAME='" + textBox1.Text + "'"SqlCommand cmd = newSqlCommand(sql, TC);int n = (int)cmd.ExecuteNonQuery();if (n > 0) MessageBox.Show("删除成功"); else MessageBox.Show("删除失败"); elseif (com
14、boBox1.SelectedItem = "城市") TC.Open();string sql = "delete from SJ where CITY='" + textBox1.Text + "'"SqlCommand cmd = newSqlCommand(sql, TC);int n = (int)cmd.ExecuteNonQuery();if (n > 0) MessageBox.Show("删除成功"); else MessageBox.Show("删除失败"
15、;); elseMessageBox.Show("请选择类型"); catch finally TC.Close(); 3.修改按钮,可实现数据修改操作代码:privatevoid button1_Click(object sender, EventArgs e) if (textBox1.Text = string.Empty)MessageBox.Show("供应商号不能为空");elseif (textBox2.Text = string.Empty)MessageBox.Show("供应商名不能为空");elseif (tex
16、tBox3.Text = string.Empty)MessageBox.Show("状态不能为空");elseif (textBox4.Text = string.Empty)MessageBox.Show("城市不能为空");else string SNO = textBox1.Text, SNAME = textBox2.Text, STATUS = textBox3.Text, CITY = textBox4.Text;SqlConnection TC = newSqlConnection("Data Source=DAN-GISQLE
17、XPRESS;Initial Catalog=DataBase_DG;Integrated Security=True"); TC.Open();string sql = "update S set SNAME=SNAME,STATUS=STATUS,CITY=CITY where SNO=SNO"SqlCommand cmd = newSqlCommand(sql, TC);SqlParameter tsno = newSqlParameter("SNO", SNO); cmd.Parameters.Add(tsno);SqlParamete
18、r tsna = newSqlParameter("SNAME", SNAME); cmd.Parameters.Add(tsna);SqlParameter tsta = newSqlParameter("STATUS", STATUS); cmd.Parameters.Add(tsta);SqlParameter tcit = newSqlParameter("CITY", CITY); cmd.Parameters.Add(tcit);int result = cmd.ExecuteNonQuery();if (result =
19、 0)MessageBox.Show("修改失败");elseMessageBox.Show("修改成功"); TC.Close(); cmd.Dispose(); 4.查询按钮,可实现查询操作代码:privatevoid button1_Click(object sender, EventArgs e) if (comboBox1.SelectedItem = "供应商号") SqlConnection TC = newSqlConnection("Data Source=DAN-GISQLEXPRESS;Initial
20、Catalog=DataBase_DG;Integrated Security=True"); TC.Open();string sql = "select * from S where SNO='" + textBox1.Text + "'"SqlCommand cmd = newSqlCommand(sql, TC);SqlDataAdapter da = newSqlDataAdapter(cmd);DataTable dt = newDataTable(); da.Fill(dt);int n = (int)cmd.Ex
21、ecuteNonQuery();if (n < 0) MessageBox.Show("查询成功"); else MessageBox.Show("查询失败"); TC.Close(); cmd.Dispose(); dataGridView1.DataSource = dt; elseif (comboBox1.SelectedItem = "供应商名") SqlConnection TC = newSqlConnection("Data Source=DAN-GISQLEXPRESS;Initial Catalog
22、=DataBase_DG;Integrated Security=True"); TC.Open();string sql = "select * from S where SNAME='" + textBox1.Text + "'"SqlCommand cmd = newSqlCommand(sql, TC);SqlDataAdapter da = newSqlDataAdapter(cmd);DataTable dt = newDataTable(); da.Fill(dt);int n = (int)cmd.Execute
23、NonQuery();if (n < 0) MessageBox.Show("查询成功"); else MessageBox.Show("查询失败"); TC.Close(); cmd.Dispose(); dataGridView1.DataSource = dt; elseMessageBox.Show("请选择类型"); 5.刷新按钮,实现数据修改后显示最新数据代码:privatevoid button6_Click(object sender, EventArgs e) SqlConnection TC = newSql
24、Connection("Data Source=DAN-GISQLEXPRESS;Initial Catalog=DataBase_DG;Integrated Security=True"); TC.Open();string sql = "select * from S"SqlCommand cmd = newSqlCommand(sql, TC);SqlDataAdapter da = newSqlDataAdapter(cmd);DataTable dt = newDataTable(); da.Fill(dt); TC.Close(); cmd.
25、Dispose(); dataGridView1.DataSource = dt; 5.退出按钮,退出当前窗口代码:privatevoid button5_Click(object sender, EventArgs e) this.Close(); 6、报警:系统中有项目零件需求表和零件库存表,当零件库存不足时显示不能开发的项目零件数量小于5则提示代码:privatevoid button1_Click(object sender, EventArgs e) try string str; str = "Data Source=DAN-GISQLEXPRESS;Initial Ca
26、talog=DataBase_DG;Integrated Security=True"SqlConnection con = newSqlConnection(str); con.Open(); str = "select * from 库存数量 where PQTY<='5'"SqlDataAdapter da = newSqlDataAdapter(str, con);DataSet ds = newDataSet(); da.Fill(ds, "库存数量"); dataGridView1.DataSource = d
27、s.Tables0.DefaultView; catch (Exception ex) MessageBox.Show(ex.Message); 报警页面,提供给工程的零件总数小于所需零件数时,报警。根据SPJ表可知,P1提供给J1总数为500<所需零件数1000,故报警。代码:privatevoid button1_Click(object sender, EventArgs e) try string str; str = "Data Source=DAN-GISQLEXPRESS;Initial Catalog=DataBase_DG;Integrated Security=True"SqlConnection con = newS
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论