《数据库程序设计》实验指导书.doc
《《数据库程序设计》实验指导书.doc》由会员分享,可在线阅读,更多相关《《数据库程序设计》实验指导书.doc(50页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、实验十五 进销存:进货记录一、实验要求按照给出的操作步骤、代码及要求,编制进销存系统中的进货记录程序。程序包括:商品、商品类别、供应商信息维护,进货记录及库存信息处理,进货信息浏览及作废处理等功能。二、建立数据库表在“进销存数据库.mdb”中建立如下表:A商品类别表字段名称数据类型字段大小/格式其它类别文本32主键;必填;不为空序号数字整型状态文本16默认值:正常;有效性规则:正常 or 停用A商品表字段名称数据类型字段大小/格式其它商品编码文本32主键;必填;不为空类别文本32名称文本80上市日期日期/时间短日期库存量数字长整型进货价格货币固定备注文本255状态文本16默认值:正常;有效性规
2、则:正常 or 退市A供应商表字段名称数据类型字段大小/格式其它供应商文本32主键;必填;不为空序号数字整型联系人文本16联系电话文本16状态文本16默认值:正常;有效性规则:正常 or 停用A进货表字段名称数据类型字段大小/格式其它进货单号文本32主键;必填;不为空进货日期日期/时间短日期供应商文本32经办人文本16备注文本255状态文本16默认值:预写;有效性规则:预写 or 正常 or 作废作废原因文本80作废经办人文本16A进货明细表字段名称数据类型字段大小/格式其它进货单号文本32联合主键;必填;不为空商品编码文本32联合主键;必填;不为空进货数量数字长整型进货价格货币固定A退货表字
3、段名称数据类型字段大小/格式其它退货单号文本32主键;必填;不为空退货日期日期/时间短日期供应商文本32经办人文本16商品编码文本32退货数量数字长整型退货价格货币固定备注文本255状态文本16默认值:预写;有效性规则:预写 or 正常 or 作废作废原因文本80作废经办人文本16建立表之间的关系如下,各关系均勾选“实施参照完整性”、“级联修改相关字段”,不勾选“级联删除相关记录”。A商品类别表.类别A商品表.类别A商品表.商品编码A进货明细表.商品编码A商品表.商品编码A退货表.商品编码A供应商表.供应商A进货表. 供应商A供应商表.供应商A退货表. 供应商A进货表.进货单号A进货明细表.进
4、货单号用户表.用户名A进货表.经办人用户表.用户名A进货表.作废经办人用户表.用户名A退货表.经办人用户表.用户名A退货表.作废经办人三、建立/设置项目1. 建立项目运行VS2010;执行菜单项“文件新建项目”;在“新建项目”窗体中,选中模版“Visual C#Windows窗体应用程序”;点击“新建项目”窗体右下部的“浏览”按钮,将“位置”设置为本人文件夹;将“名称”文本框中的内容输入为“进货记录”;点击“确定”按钮。2. 主窗体设置将“From1.cs”改为“FormMain.cs”;将主窗体的“Text”属性值改为“进货记录(本人姓名)”;将主窗体的“Font”属性值设为“宋体,5号”;
5、将主窗体的“StartPosition”设为“CenterScreen”。3. 设置项目输出目录(很重要)在解决方案资源管理器中双击“Properties”;在编辑区域的“进货记录”页面,点击“生成”子页面;在“输出路径(O)”中,输入“.执行程序”;关闭“进货记录”页面。4. 设置对“公用类库”的引用执行VS菜单项:项目添加引用;在“添加引用”对话框中,切换到“浏览”页面;浏览到“.执行程序公用类库.dll”,双击该文件;在用到公用类库的cs文件中均添加引用语句:using 公用类库;四、编写主窗体代码1. 在主窗体中添加控件在主窗体中添加TreeView控件如下:将TreeView控件的“
6、(Name)”改为“treeViewMenu”,将“Dock”属性改为“Left”;将“ItemHeight”改为28;在控件上点右键,执行“编辑节点.”,将内容添加为如上图所示,将各节点的“Name”及“Text”设为相应的文本。2. 产生事件方法双击主窗体,产生Load事件方法;双击TreeView控件,产生AfterSelect事件方法;选中主窗体,将属性窗体转换到事件页面,找到“SizeChanged”事件,双击,产生主窗体的SizeChanged事件方法;找到“Move”事件,双击,产生主窗体的Move事件方法。3. 编写树状菜单代码在“FormMain.cs”文件中编写如下代码:u
7、sing System.Windows.Forms;using 公用类库;namespace 进货记录 public partial class FormMain : Form public FormMain() InitializeComponent(); treeViewMenu.ExpandAll(); /展开树状菜单 private void FormMain_Load(object sender, EventArgs e) Class安全.Init(); private void treeViewMenu_AfterSelect(object sender, TreeViewEven
8、tArgs e) Form curForm = null; /当前被打开的子窗体 int formWidth, formHeight; /当前窗体的原始宽度、高度 void OpenForm(Form fb) /打开给定的窗体fb if (curForm != null) /如果已打开有窗体 curForm.Hide(); /隐藏该窗体 curForm = fb; /将给定的窗体设为当前窗体 curForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None; /将窗体设为无边框 AddOwnedForm(curForm);
9、/使子窗体属于主窗体,保证其总是显示在主窗体之上(不会被覆盖) formWidth = curForm.Width; /保存子窗体的原始宽度 formHeight = curForm.Height; /保存子窗体的原始高度 curForm.Show(); /打开或显示子窗体 SetFormLocation(); /设置子窗体的位置和尺寸 curForm.Focus(); void SetFormLocation() /在主窗体上设置子窗体的位置和尺寸 if (curForm = null) /如果没有已打开的子窗体 return; /返回 Rectangle cr = this.ClientR
10、ectangle; /获取主窗体客户区的尺寸 cr.Width -= treeViewMenu.Width; /宽度减去TreeView的宽度 Point lt = new Point(); /存放子窗体左上角位置 /计算子窗体左侧位置(相对于主窗体客户区) lt.X = (cr.Width - formWidth) / 2; if (lt.X 0) curForm.Width = cr.Width; lt.X = 0; else curForm.Width = formWidth; lt.X += treeViewMenu.Width; /计算子窗体上侧位置 lt.Y = (cr.Heigh
11、t - formHeight) / 2; if (lt.Y 0) curForm.Height = cr.Height; lt.Y = 0; else curForm.Height = formHeight; lt = PointToScreen(lt); /将客户区位置转换为屏幕位置 curForm.Top = lt.Y; /设置子窗体左侧位置 curForm.Left = lt.X; /设置子窗体上侧位置 private void FormMain_SizeChanged(object sender, EventArgs e) SetFormLocation(); /在主窗体尺寸改变时,重
12、设子窗体尺寸和位置 private void FormMain_Move(object sender, EventArgs e) SetFormLocation(); /在主窗体移动时,重设子窗体尺寸和位置 生成、运行程序,排除错误。4. 添加“退出”、“修改密码”功能在treeViewMenu_AfterSelect()事件方法中添加代码,实现退出程序、修改密码的功能。 private void treeViewMenu_AfterSelect(object sender, TreeViewEventArgs e) if (e.Node.Text = 退出) Application.Exit
13、(); else if (e.Node.Text = 修改密码) Form修改密码 frm = new Form修改密码(); frm.ShowDialog(); frm.Dispose(); treeViewMenu.SelectedNode = treeViewMenu.Nodes系统; /将被选中的节点设为“系统” 五、实现基础信息维护功能(一)商品类别维护1. 建立“商品类别”窗体点击VS菜单项“项目添加Windows窗体”;在“添加新项”窗体中,选中“Windows窗体”,将“名称”输入为“Form商品类别”,点击“添加”按钮;将窗体的“Text”输入为“商品类别”;将窗体的“Fon
14、t”设置为宋体五号字。2. 添加窗体控件在窗体中添加控件如下:DataGridView控件“(Name)”取为“dataGridView商品类别”;将BackgroundColor设为白色;勾选“启用添加”、“启用编辑”、“启用删除”、“启用列重新排序”;添加图中所示的三列,适当调整各列的宽度;将“状态”列的“ColumnType”设为“DataGridViewComboBoxColumn”,“DisplayStyle”设为“ComboBox”,在Items中输入“正常”、“停用”两行。建立“保存”按钮。用Label控件左下部的一行文字。3. 添加事件方法编写代码添加窗体的Load事件方法;添
15、加保存按钮的Click事件方法。添加如下代码:using System.Windows.Forms;using System.Data.OleDb;using 公用类库;namespace 进货记录 public partial class Form商品类别 : Form public Form商品类别() InitializeComponent(); private void Form商品类别_Load(object sender, EventArgs e) try OleDbConnection conn = new OleDbConnection(Class安全.StrDBConn);
16、OleDbCommand cmd = new OleDbCommand(); /定义数据库命令对象 cmd.Connection = conn; /将连接对象关联到命令对象 cmd.CommandText = select * From A商品类别表 ORDER BY 序号; DataTable dt = new DataTable(); /定义内存中的数据库表 OleDbDataAdapter da = new OleDbDataAdapter(cmd); /定义桥接器并关联到命令对象 da.Fill(dt); /通过桥接器将SQL语句的读入内容填入内存表 /对已定义列的数据网格,将各列对应
17、到所读入数据的各字段 dataGridView商品类别.Columns类别.DataPropertyName = 类别; dataGridView商品类别.Columns序号.DataPropertyName = 序号; dataGridView商品类别.Columns状态.DataPropertyName = 状态; dataGridView商品类别.DataSource = dt; /将内存表关联到数据网格 catch (Exception ex) MessageBox.Show(读入商品类别表错误rn + ex.ToString();/显示异常信息 private void button
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 数据库程序设计 数据库 程序设计 实验 指导书
限制150内