数据库设计实验报告.docx

上传人:b****4 文档编号:4703639 上传时间:2022-12-07 格式:DOCX 页数:26 大小:215.21KB
下载 相关 举报
数据库设计实验报告.docx_第1页
第1页 / 共26页
数据库设计实验报告.docx_第2页
第2页 / 共26页
数据库设计实验报告.docx_第3页
第3页 / 共26页
数据库设计实验报告.docx_第4页
第4页 / 共26页
数据库设计实验报告.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

数据库设计实验报告.docx

《数据库设计实验报告.docx》由会员分享,可在线阅读,更多相关《数据库设计实验报告.docx(26页珍藏版)》请在冰豆网上搜索。

数据库设计实验报告.docx

数据库设计实验报告

学号:

0906410230

数据库课程设计报告

2011年秋季学期

学院:

信息与控制工程学院

专业班级:

计算机09-2班

姓名:

常乐杰

设计日期:

2011年12月26日~12月30日

课程设计成绩:

评阅教师:

评阅日期:

目录

目录1

1.问题描述2

1.1背景2

1.2数据需求2

1.3事务需求2

2.解决方案2

2.1E-R模型设计2

2.2设计数据库4

2.2.1创建数据库4

2.2.2创建数据表4

2.2.3连接数据库4

2.3主窗体设计5

2.3.1设计登录界面5

2.3.2添加数据组件5

2.3.3生成数据集5

2.3.4设计代码6

2.4信息6

2.4.1设计显示界面6

2.4.2添加数据组件6

2.4.3功能实现7

2.5其他功能的实现7

2.5.1设计修改密码功能7

2.5.2退出功能的实现7

2.5.3注册功能的实现7

3.系统实现7

3.1开发环境7

3.2系统流程图7

3.3程序调试情况8

3.4功能显示8

3.5结论11

4.结束语11

附录:

源代码清单12

附1.1主窗体设计代码如下:

12

附1.2显示课程名称设计代码如下:

13

附1.3用户注册窗体设计代码16

附1.4修改密码窗体设计代码18

附1.5用户登录设计代码如下:

20

1.问题描述

1.1背景

本系统利用VB.NET处理数据库的功能,实现对学生课程的管理。

主要功能为管理学生信息、课程信息。

本系统的结构分为注册模块、登录模块、用户信息修改模块、课程信息管理模块。

1.2数据需求

根据系统的需求,首先将要记录的信息分类,要记录的信息如下。

(1)用户信息:

包括用户ID、用户名、密码、用户角色等。

(2)课程信息:

包括课程号、课程姓名、先行课等。

根据这些需要,本系统需要“用户信息”表,“课程信息”表。

1.3事务需求

(1)在登录模块部分,要求如下。

①可以输入用户信息进入系统。

②可以增加新的用户。

③可以对指定用户进行注销操作。

(2)在用户信息修改模块部分,要求如下。

①必须事先通过用户名和密码进入系统。

②可以对用户信息进行修改操作。

(3)在课程信息管理模块部分,要求如下。

①可以浏览课程信息。

②可以对课程信息进行维护,包括添加、修改及删除等操作。

2.解决方案

2.1E-R模型设计

该系统的E-R模型如图1所示。

(1)用户实体属性图

图2-1用户信息图

(2)课程实体属性图

图2-3课程基本信息图

(4)合并E-R图

图1–简单学生课程管理系统E-R模型

2.2设计数据库

2.2.1创建数据库

(1)在服务器资源管理器中的任一节点右击。

(2)执行快捷菜单中的“新建数据库”命令,并在打开的“创建数据库”对话框中输入数据库名0906410230,选中“使用WindowsNT集成安全性”单选按钮。

(3)单击“确定”按钮,则新建的数据库就会出现在服务器上。

2.2.2创建数据表

创建数据库后,为0906410230数据库添加数据表,步骤如下。

(1)在服务器资源管理器中右击数据库0906410230下的“表”文件夹。

在弹出的快捷菜单中执行“新建表”命令,出现表设计器。

(2)添加表的字段和其他详细资料。

各表数据结构如表1所示。

①用户信息表

Users表结构:

②课程信息表

Books表结构:

2.2.3连接数据库

为数据库0906410230和本系统之间建立一个数据连接。

(1)在服务器资源管理器中右击“数据连接”节点。

在弹出的快捷菜单中执行“添加连接”命令,打开DataLinkProperties对话框。

切换到Provider选项卡,选中列表框中的MicrosoftOLEDBProviderforSQLServer项。

单击“下一步”切换到Connection选项卡。

(2)在其中的第一个下拉列表框中选择数据库所在服务器名称。

输入登录服务器信息后选择数据库0906410230,然后单击TestConnection按钮。

如果测试成功,单击“确定”按钮。

2.3主窗体设计

创建一个新的“Windows应用程序”类型的项目,名为“学生课程管理”。

将默认创建的窗体命名为“学生课程管理系统”,把“学生课程管理系统”作为本系统中的主界面。

在窗体中添加两个Pannel控件,更换背景。

2.3.1设计登录界面

设计登录界面

创建一个新的”Windows窗体”,名为Login,作为本系统的登录界面.在Login窗体上添加三个Label控件,三个Button控件、两个TextBox控件和一个comboBox控件,添加控件后的窗体如图所示。

2.3.2添加数据组件

在工具箱中单击“数据”选项卡,添加OleDbDataAdapter组件。

(1)在工具箱中单击OleDbDataAdapter组件,在窗体任意位置拖动出一个虚框矩形后释放左键弹出“数据适配器配置向导”对话框。

(2)单击“下一步”,在打开的对话框中选择前面建好的数据连接,然后单击“下一步”。

(3)选中“使用SQL语句”,然后单击“下一步”进入“生成SQL语句”对话框。

(4)在其中的多行文本框直接输入SQL语句“SELECT管理者信息.*FROM管理者信息”。

(5)单击“下一步”按钮,进入“查看向导结果”,单击“完成”按钮完成数据适配器配置。

配置数据适配器后,在主窗体上就会自动添加一个OleDbConnection控件。

2.3.3生成数据集

生成数据集的步骤如下:

(1)单击OleDbDataAdapter控件“属性”对话框中的“生成数据集”链接,打开“生成数据集”对话框。

(2)在其中选中“新建”单选按钮,并在其后面的文本框中输入“Lib用户信息”。

(3)在“选择要添加到数据集中的表”列表框中列出了前面添加的OleDbDataAdapter组件所连接的表,选中该表名前面的复选框。

(4)选中“将此数据集添加到设计器”复选框,单击“确定”按钮

这样,将生成一个名称为“Lib用户信息”的数据集,该数据集以文件形式存储,文件名为“Lib用户信息.xsd”。

而在项目中,添加了一个DataSet组件,名为“objLib用户信息”。

在解决方案资源管理器中右击该项目,在弹出快捷菜单中单击“属性”菜单项。

在打开的“属性页”对话框中的“启动对象”下拉列表框中选择“学生课程管理系统”选项。

单击“确定”按钮,这样该项目启动时,就会从主窗体开始启动。

2.3.4设计代码

在程序运行过程中,如果想通过单击LinkLabel控件或Button控件进入系统中的各个功能模块(如显示课程信息等),就会弹出一个对话框要求输入用户名和密码.单击"确认"按钮,程序就会到数据库的"用户信息"表中查找该用户名和密码是否存在.如果存在,允许进入功能模块.

完成登录功能的主要代码集中在UserCheck函数中.在程序运行过程中,在Login窗体的"用户姓名"和"用户密码"文本框中输入用户名和密码后,单击"确认"按钮就会触发UserCheck函数并执行其中的代码.如果UserCheck函数返回True,那么允许用户的操作;否则拒绝用户的操作请求.

在UserCheck函数中首先定义Login类型的变量dlg_Login,然后通过ShowDialog方法来显示登录窗体.如果用户在登录窗体中输入用户姓名和密码,并且单击了"确认"按钮,那么自动调用一个自定义函数LoadDataSet(),由此函数进行数据加载.如果出错,显示错误信息,回滚整个事务.

具体设计代码见附录1.1。

2.4信息

在当前项目中添加一个“Windows窗体”,将窗体命名为“frmBookes”。

2.4.1设计显示界面

在窗体上添加1个GroupBox控件,2个Button控件。

各按钮控件是为了执行相应的操作。

Buttonx控件用来对数据集中的数据进行维护和修改。

2.4.2添加数据组件

向窗体添加OleDbConnection组件,命名为OleDbConnection1后将其选中,在“属性”对话框的ConnectionString栏单击,选择所建数据库Library。

添加OleDbDataAdapter组件和生成数据集的方法步骤如2.3.2及2.3.3。

设置各TextBox控件的DataBinding属性来实现对数据集中数据的显示(以“添加”为例)。

(1)选中“添加”控件单击“属性”对话框。

(2)单击DataBinding属性前面的+号打开该属性的详细列表。

(3)设置Text属性:

在该属性后面栏中单击并选择所对应字段。

(4)设置其他TextBox控件的DataBinding属性。

2.4.3功能实现

显示数据,输入课程信息,添加课程信息。

或者显示数据,选中课程,删除课程。

具体实现代码见附1.2。

2.5其他功能的实现

2.5.1设计修改密码功能

在程序运行过程中,单击主窗体的“开始”按钮,会出现修改密码和退出两个选项。

为此需要在项目中添加一个新的窗体“修改密码”。

设置Label控件、Button控件、TextBox控件和comboBox控件。

以完成修改密码功能。

2.5.2退出功能的实现

在程序运行过程中,单击主窗体的“开始”按钮,会出现修改密码和退出两个选项。

单击退出可以直接退出学生课程管理系统。

2.5.3注册功能的实现

在程序运行过程中,首先出现登陆界面,在登陆界面的右下角有一个注册按键。

为了实现“注册”Button控件的功能,需要添加一个新的窗体。

设置三个Label控件、两个Button控件和三个TextBox控件以完成用户注册的功能。

3.系统实现

3.1开发环境

本系统使用VisualBasic.NET语言进行开发。

需要Microsoft.NETFrameworkSDKv1.1的支持。

适用内存不低于256M配备有Windows2000,Windows2003,WindowsXP系统的计算机。

3.2系统流程图

在本系统中准备通过如下窗体来实现相应的功能。

系统流程图

3.3程序调试情况

在数据连接时一定要注意窗体和相应显示控件的绑定关系。

在把系统从一台计算机移植到另一台计算机时一定要把数据文件library.mdf和library_log.LDF同时移植,并对相应的提供服务的SQLServer服务器进行相应的修改,否则数据正确连接并显示。

3.4功能显示

运行程序后首先显示登陆界面,如图所示。

 

点击注册按钮,会显示注册窗体,如下图所示:

在注册显示窗体中,可以新建一个用户,并自定义用户名和密码。

新用户信息将被保存在数据库的用户信息表中。

点击取消,可以中断并取消新建用户的操作。

在输入并确定完用户和密码后,点击注册按钮便完成了用户的注册。

在输入用户名和密码并选择好用户身份后,可点击注销按钮来注销用户,起作用根本上是删除数据库中用户信息表中的相关信息。

用户在正确的身份选择下,输入正确的用户名和密码,点击登录按钮可以进入学生课程管理系统。

此次将显示学生课程管理系统的主界面,如下图所示:

在此窗体界面上有两个操作选择,开始和查询。

其中开始菜单下有修改密码和退出两个操作,查询菜单下有显示课程信息的操作。

将鼠标拖到查询,显示下拉菜单,点击显示课程名称,将出现一个名为frmBooks的新窗体,如下图所示:

该窗体不仅可以显示当前的课程信息,还可以通过添加和删除操作对课程信息进行维护。

关闭frmBooks窗口,回到主窗体即学生课程管理系统窗体。

将鼠标拖到开始,显示下拉菜单,点击修改密码,会出现名为“密码修改”的新窗体,如下图所示:

此窗体可以完成密码重置的功能,通过用户输入用户名和密码对用户什么进行验证,然后两次输入新密码以完成密码的重置。

在信息输入完毕后,点击重置便完成了密码的修改,此功能通过改变数据库中用户信息表中的内容来改变密码,因此修改后数据库也会发生相应的改变。

重置前若需要取消操作,只需要点击取消按钮即可。

需要的注意的是:

在点击重置按钮后,不能再通过取消按钮来取消相关操作,若希望使用原密码,只能再次通过修改密码来还原。

在完成了用户需要的操作后,程序会回到“学生课程管理系统”这个主窗体,若需要退出程序,可以点击窗体右上角的

,或者通过开始下拉菜单里面的退出选项退出。

3.5结论

在这个系统的开发过程中,值得注意的几点有:

(1)本地数据库和服务器数据库的连接方式有所区别,在写程序是注意代码的实现。

(2)设计数据库的时候,要充分考虑日后使用过程中用户需求的改变,以便于数据库的后期维护。

4.结束语

通过做课程设计,有几点感想,经过整理如下。

1.扎实的基础。

如果不掌握他们,很难写出高水平的程序。

而这一点又是我们所缺乏的。

2.不钻牛角尖。

当遇到障碍的时候,暂时远离电脑,当重新开始工作的时候,也许会发现那些难题现在竟然可以迎刃而解。

3.多与别人交流。

三人行必有我师。

4.良好的编程风格。

注意养成良好的习惯,代码的缩进编排,变量的命名规则要始终保持一致。

如果注释和代码不一致,那就更加糟糕。

 

附录:

源代码清单

附1.1主窗体设计代码如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Windows.Forms;

namespaceLibrary

{

staticclassProgram

{

///

///应用程序的主入口点。

///

[STAThread]

staticvoidMain()

{

Application.EnableVisualStyles();

Application.SetCompatibleTextRenderingDefault(false);

//Application.Run(newfrmLogin());

frmMainFormfmf=newfrmMainForm();

//Application.Run(fmf);

//fmf.Hide=true;

frmLoginfl=fl=newfrmLogin();

DialogResultdr=fl.ShowDialog();

 

if(dr==DialogResult.OK)

{

fmf.UserRole=fl.UserRole;

Application.Run(fmf);

}

else

{

if(dr==DialogResult.No)

{

MessageBox.Show("Userlogininformationiserror,thesystemwillexit!

");

}

Application.Exit();

}

}

}

}

附1.2显示课程名称设计代码如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Data.SqlClient;

namespaceLibrary

{

publicpartialclassfrmBooks:

Form

{

SqlConnectionsql_Conn;

SqlDataAdapteradapter;

DataSetdataset;

//DataTabledatatable;

//DataRowdatarow;

publicfrmBooks()

{

InitializeComponent();

}

publiclongLoginDatabase()

{

longr=-1;

//connecttothedatabase

stringconnectionString="server=localhost;database=0906410230;integratedsecurity=SSPI";

//stringconnectionstring="server=Fs;Database=0906410230;uid=sa;pwd=sa;";

sql_Conn=newSqlConnection(connectionString);

sql_Conn.Open();

if(sql_Conn.State==ConnectionState.Open)

{

r=0;

}

returnr;

}

publicvoidLogoutDatabase()

{

if(sql_Conn.State==ConnectionState.Open)

{

sql_Conn.Close();

}

}

privatevoiddataGridView1_CellContentClick(objectsender,DataGridViewCellEventArgse)

{

}

publicvoidCoursesInfo()

{

try

{

DataSetdsChanges=dataset.GetChanges();

if(dsChanges==null)

{

return;

}

DataTabledtTable=dsChanges.Tables[0];

DataRow[]drRows=dtTable.GetErrors();

if(drRows.Length==0)

{

intnRow=adapter.Update(dsChanges);

dataset.AcceptChanges();

}

else

{

stringerrorMsg=null;

foreach(DataRowdrRowindrRows)

{

foreach(DataColumndcColumnindrRow.GetColumnsInError())

{

errorMsg+=drRow.GetColumnError(dcColumn)+"\n";

}

}

MessageBox.Show(errorMsg,"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);

}

}

catch(System.Exceptione)

{

MessageBox.Show(e.Message,"错误",MessageBoxButtons.OK,MessageBoxIcon.Error);

dataset.RejectChanges();

 

}

}

privatevoidbtnAddBooks_Click(objectsender,EventArgse)

{

CoursesInfo();

}

privatevoidbtndeleteBooks_Click(objectsender,EventArgse)

{

intcRow=dgvbooks.CurrentRow.Index;

dgvbooks.Rows.RemoveAt(cRow);

CoursesInfo();

}

privatevoidfrmBooks_Load(objectsender,EventArgse)

{

LoginDatabase();

adapter=newSqlDataAdapter("select*fromBooks",sql_Conn);

dataset=newDataSet();

adapter.Fill(dataset);

SqlCommandBuilderbuilder=newSqlCommandBuilder(adapter);

adapter.InsertCommand=builder.GetInsertCommand();

adapter.DeleteCommand=builder.GetDeleteCommand();

adapter.UpdateCommand=builder.GetUpdateCommand();

dgvbooks.DataSource=dataset.Tables[0];

//dgvwords.Columns[0].ReadOnly=true;

dgvbooks.Columns[0].DefaultCellStyle.BackColor=Color.LightGray;

}

}

}

附1.3用户注册窗体设计代码

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

usingSystem.Data.SqlClient;

namespaceLibrary

{

publicpartialclassfrmRegister:

Form

{

SqlConnectionsql_Conn;

SqlCommandsql_Comm;

publicfrmRegister()

{

InitializeComponent();

}

publiclongLoginDatabase()

{

longr=-1;

//connecttothedatabase

stringconnectionString="server=localhost;database=0906410230;integratedsecurity=SSPI";

//stringconnectionstring="server=Fs;Database=0906410230;uid=sa;pwd=sa;";

sql_Conn=newSqlConnection(connectionString);

sql_Conn.Open();

if(sql_Conn.State==ConnectionState.Open)

{

r=0;

}

returnr;

}

publicvoidLogoutDatabase()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1