专业 | 软件工程 |
学生姓名 | 张伯虎 |
班级 | B软件121 |
学号 | 1210701128 |
指导老师 | 孙莉 |
| |
一、实验目的
设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程, 了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。
二、实验原理
1、C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。
2、C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。
(1)二层客户/服务器风格
(2)三层客户/服务器风格
三、主要仪器及耗材
每人一台计算机
四、实验步骤及内容
需要实际设计开发出一个简单的基于二层C/S结构的应用系统——个人通讯录管理系统,主要步骤和内容如下:
1、在 SQL Server 2000中建立数据库Contact,建立表friend。
建立数据库Contact:
create database Contact
use contact
go
建立表friend:
Create table friend(
Fid int identity(1,1) not null,--编号信息 Fname varchar(8) not null,--姓名信息
Fphone varchar(12) ,--电话信息
Faddress varchar(100) –地址信息
)
go
2、在Visual Studio 2000中用C#语言建立用户界面层(UI)程序:Contact项目,主要呈现用户操作界面。
3、运行程序查看结果。
添加联系人信息:
五、实验注意事项
1.C#区分大小写,编写程序时一定要注意。
2.程序要注意保存,并记住保存的位置
3.本实验为综合性实验,需要多次才能完成,前面的阶段性实验成果后续需要使用,在下
课离开机房时务必将数据库、项目程序等备份到移动存储设备带走。
六、讨论、思考题
1、画出二层C/S结构简图,并列举优缺点。
二层C/S结构的优点:
开发比较容易,操作简单,容易理解
二层C/S结构的缺点:
应用程序升级和维护困难,可扩展性差
2、简述本实验中开发二层C/S结构应用系统的技术线路。
业务逻辑层设计 | 完成界面设计、功能设计(对数据库的增删改查) |
数据层设计 | 创建数据库,数据据表,以及数据的存储、查询与返回 |
| |
3、画图表示二层C/S结构三种可能的物理部署方式。
服务器2 | 数据层 | | |
服务器1 | | 数据层 | |
客户机 | 功能层 | 功能层 | 数据层 功能层 |
| | | |
4、写出本实验中业务逻辑层的主要功能及实现代码。
业务逻辑层的主要功能是:查看联系人信息,添加联系人信息,修改联系人信息,删除联系人信息。
1.查看联系人信息主要代码:
string sql = "select Fid,Fname,Fphone,Faddress from t_friend";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand comm = new SqlCommand(sql,conn);
SqlDataReader dr = comm.ExecuteReader(CommandBehavior.CloseConnection);
try{
list_allFriend.Items.Clear();
while (dr.Read()){
this.list_allFriend.Items.Add(
new ListViewItem(new string[]{dr.GetInt32(0).ToString(),
dr.GetString(1),
dr.GetString(2),
dr.GetString(3)}));
}
}catch (Exception e) {
MessageBox.Show(e.ToString());
}finally{
dr.Close();
}
2.添加联系人信息:
string sql = "insert into t_friend values('" +tb_name.Text+ "','" +tb_phone.Text+ "','" +tb_adress.Text+ "')";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand comm = new SqlCommand(sql, conn);
int lineNum = comm.ExecuteNonQuery();
conn.Close();
3.修改联系人信息:
string sql = "update t_friend set Fname='" + tb_name.Text + "',Fphone = '" + tb_phone.Text + "',Faddress='" + tb_adress.Text + "' where Fid = '"+lineNumFlag+"'";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand comm = new SqlCommand(sql, conn);
int lineNum = comm.ExecuteNonQuery();
conn.Close();
4.删除联系人信息:
string sql = "delete from t_friend where Fid = '" + lineNumFlag + "'";
SqlConnection conn = new SqlConnection(connstr);
conn.Open();
SqlCommand comm = new SqlCommand(sql, conn);
int lineNum = comm.ExecuteNonQuery();
conn.Close();
七、实验体会
在这次实验中,主要是C/S二层结构的设计和项目代码撰写,对于C/S二层结构的设计还是比较简单的,主要是在代码撰写时遇到一些问题,主要是数据库连接这一块,我在SQLEXPRESS服务中新建数据库和用户,一直无法用该用户名登陆数据库,后来发现是SQLEXPRESS服务有问题,我把数据库的服务改成了MSSQLSERVER问题解决。
在这次实验中我明白了C/S的含义以及C/S二层结构的设计和代码的撰写。在代码撰写的过程中,我明白了C/S二层架构的优点:代码撰写简单,容易理解,但我也了解到了C/S二层架构的缺点:就是代码的冗余度高,回过头看结构不是得有条理,调试改错时有点难度,后期程序的升级和维护比较困难,程序的可扩展性比较差。
实验二 C/S结构应用设计
一、实验目的
设计并实现一个基于多层C/S结构的数据库应用,熟悉多层C/S体系结构及其基本处理流程,了解多层结构表现层、业务逻辑层(功能层)、数据访问层所完成的功能,掌握多层
C/S结构的数据库应用设计方法,对这三层进行明确分割,并在逻辑上使其独立。学生通过本实验的训练能够熟练掌握对小型数据库应用系统三层结构层次划分方法及系统实现技术。