房地产信息管理系统课设报告

更新时间:2024-01-26 06:05:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

北 华 航 天 工 业 学 院

《C#程序设计》

课程设计报告

课程设计题目: 房地产信息管理系统 作者所在系部: 计算机科学与工程系 作者所在专业: 作者所在班级: 作 者 姓 名 : 作 者 学 号 : 指导教师姓名: 完 成 时 间 :

北华航天工业学院教务处制

课程设计任务书

课题名称 指导教师 房地产信息管理系统 职称 讲师 学生姓名 总体设计要求和技术要点 总体设计要求: 1.要求利用C#的编程思想来完成系统的设计; 2.突出C#语言与其它语言的不同点; 3.体现可视化编程东西,如系统带有菜单和一些常用的控件; 4.每个学生做老师分配的题目,必须独立完成,不能随意更改题目; 技术要求: 技术要点: 在增删查改的时候各个表要有级联,符合现实的要求。 完成时间 班 级 工作内容及时间进度安排 总计2周: 分三个阶段完成: 1.需求分析阶段:明确设计要求,找出实现方法,这一阶段在第一天完成。 2.编码调试阶段:根据设计分析方案编写C#代码,然后调试改代码,实现 课设要求的功能。这一阶段在2-8天完成。 3.总结报告阶段:总结设计工作,撰写课程设计报告,这一阶段在8-9完成。 课程设计成果 1.与设计内容对应的软件程序 2.课程设计报告书

摘 要

房地产信息管理是房地产业的重要组成部分,其在房地产业经济运作的全过程之中起着至关重要的作用,为房地产业的生产、流通和消费提供了多元化的中介服务。房地产信息管理做为一个管理房屋信息的机构,其对信息的管理应该准确,无误。利用所学过的软件工程设计思想,数据库等知识设计一个房地产信息管理系统的软件对于提高该中介机构的工作效率变得尤为重要。

本文探讨房产中介管理系统的理论基础和设计思想,介绍了房地产信息管理系统的各个功能,以软件工程理论作为系统开发的理论基础,设计并实现了对出租,出售房屋信息的管理,对求租求购客户信息,需求的记录,并及时为其提供准确信息。其主要内容包括如下:对于房屋信息的管理;后台数据库的设计,建立以及各个模块间的关系。

关键词:信息管理; Microsoft Access数据库; .net 2005

目录

第1章 绪 论 ...................................................................................................................... 1

1.1 课题研究现状分析 ................................................................................................... 1

1.1.1 本领域内已开展的研究工作 ........................................................................ 1 1.1.2 已经取得的研究成果 .................................................................................... 2

第2章 系统需求分析 .......................................................................................................... 3

2.1 业务需求 ................................................................................................................... 3 2.2用户需求 .................................................................................................................... 3 2.3功能需求 .................................................................................................................... 3 第3章 系统总体设计 .......................................................................................................... 4

3.1 系统功能设计 ........................................................................................................... 4

3.1.1 系统登录 ........................................................................................................ 5 3.2 数据库的设计 ........................................................................................................... 5 3.3 库中各个表的设计 ................................................................................................... 6 第4章 系统实现 ................................................................................................................ 10

4.1 数据库操作 ............................................................................................................. 10 4.2 登录模块实现 ......................................................................................................... 10 4.3 买房者模块实现 ..................................................................................................... 13 4.4 管理员模块实现 ..................................................................................................... 19 第5章 系统使用说明 ........................................................................................................ 30 第6章 课程设计总结 ........................................................................................................ 31

6.1 主要问题及解决办法 ............................................................................................. 31 6.2 课程设计体会 ......................................................................................................... 31 6.3 自我评定 ................................................................................................................. 31 参考文献 ........................................................................................................................ 32

第1章 绪 论

随着信息产业的飞速发展,信息化管理已经引入并应用到各行业管理领域,各种形式的百货商场、大型仓储超市、便利店、连锁超市和专卖店等形式的零售业鳞次栉比,不断改变、影响着人们的价值观念和生活方式。因此,要提升企业竞争力,就要大力推进企业信息化建设,利用先进的办公自动化系统来实现企业内部信息管理、共享及交流,才能使企业在竞争激烈的21世纪取得先机。

1.1 课题研究现状分析

随着住房制度改革不断深化和居民收入水平的提高,住房成为新的消费热点。1998以后,随着住房实物分配制度的取消和按揭政策的实施,房地产投资进入平稳快速发展时期,房地产业成为经济的支柱产业之一。2003年以来,房屋价格持续上扬,大部分城市房屋销售价格上涨明显。随之而来国家出台了多项针对房地产行业的调控政策,希望能引导房地产市场的健康发展。而房屋中介行业是房地产业的重要组成部分,房屋中介贯穿在房地产业经济运行的全过程之中,为房地产业的生产、流通和消费提供了多元化的中介服务 。房屋中介行业做为一个管理房屋信息的机构,其对信息的管理应该准确,无误。因此利用所学过的软件工程设计思想,数据库等知识设计一个房屋中介管理的软件对于提高该中介公司的工作效率变得尤为重要。

本次课题为:房地产信息管理系统,它的主要功能是先通过用户身份验证,然后即可登录用户基本信息管理系统,然后通过增、删、查、改操作对用户和房源基本信息进行管理和维护。

1.1.1 本领域内已开展的研究工作

1.理论研究基础

(1)后台以SQL数据库支持。

(2)前台以 NeatBeans为开发环境,实现学生基本信息管理的增、删、查、改操作。 2.技术层面的支持

(1)系统的设计与实现应采用MVC分层模式。

(2)系统界面采用MDI方式,即用户登录后进入主窗体,主窗体通过菜单进入子窗体。

1

1.1.2 已经取得的研究成果

房屋销售管理信息系统,是以房地产销售实际需求为背景,将各相关的业务及工作流程计算机化,以计算机代替传统的手工操作方式,实现通过操作平台对房地产销售相关信息进行整合、分类及查询等功能。目前各个知名房地产销售公司都开发了自己的管理软件,但在进行全面地信息整合分析、同时增加销售商与业主之间交流与联系的全面交互系统并不多。因此,该系统的研究和设计对于改善房地产销售公司信息不对称,提高工作效率,提高工作质量方面起到了积极作用,具有一定的经济效益和较大的社会效益。

2

第2章 系统需求分析

2.1 业务需求

随着计算计硬件和软件的发展,现代社会早已经进入信息化高速运行时代。计算机在各中行业和领域的应用也越来越广泛,对于房屋中介和一些大型的房地产公司也不例外。现代社会的房产信息管理也以进入系统化、信息化阶段。大量的库存信息管理和快节奏的更新速度是传统的管理方式显得力不从心,而使用计算机管理就成了惟一的解决方案,然而计算机的应用是需要强大的系统软件和行业软件来支持的,房产信息的管理亦不例外。所以开发出一款功能强大的房屋中介管理信息系统是软件支持的需要,更何况此系统既要是功能强大,也要要求操作简单,易实现。

所以,开发出一款功能强大,而又操作简洁、方便、快捷,适应用户要求的房屋中介管理信息系统是业务的需要。

2.2用户需求

1. 软件具有简洁美观的界面。

2. 操作简单、快捷,适合用户使用习惯。 3. 要求系统安全、稳定。

4. 要求能够注册多个用户,有不同的用户权限。

2.3功能需求

1. 卖房者:查询购买房者信息和出售房屋信息。 2. 买房者:查询购卖房者信息和出售房屋信息。 3. 出租者:查询租用者信息和出租房屋信息。

4. 租用者:查询出租者信息和出租房屋信息。 5. 管理员:添加买卖双方和租用双方基本信息; 修改买卖双方和租用双方基本信息; 删除买卖双方和租用双方基本信息; 添加买卖双方和租用双方的交易基本信息;

3

第3章 系统总体设计

3.1 系统功能设计

本系统实现了房地产信息管理,总体分为五大模块:买房者,卖房者,管理员,租用者,出租者,期中,买房者,卖房者,租用者和出租者只有查询功能,而管理员具有增删查改等功能。具体如图3-1所示。

4

图3-1 系统功能模块图

(1)刷新模块:用于显示所有学生的基本信息。 (2)添加模块:添加用户和房源的基本信息。

(3)删除模块:删除符合条件的用户和房源的基本信息。 (4)查询模块:查询出满足条件的用户和房源的基本信息。 (5)修改模块:对用户和房源的基本信息进行修改。

3.1.1 系统登录

登录为用户使用系统的起始点,用户必须先通过身份验证,方可对学生基本信息进行相关操作,登录流程如图3-2所示。

登录 处理 查询验证 失败 错误提示 成功 登录主界面 操作

结束 图3-2 登录模块流程图

简要说明及功能描述:

功能主要是用于确保用户在提供正确的验证信息之后,可以进一步使用本系统。

3.2 数据库的设计

本系统采用sql server 2008数据库管理系统,创建的数据库名称为:House,数据库中包含9张表,各表功能及描述如表3-1所示。

5

表3-1 数据库中的表

表名 Custodian Sellhouse Rentlhouse Bsbargin Lrbargin Buy Sell Lease Rent 作用 用于存储管理员信息 用于存储出售房屋信息 用于存储出租房屋信息 用于存储出售房屋交易信息 用于存储出租房屋交易信息 用于存储买房者信息 用于存储卖房者信息 用于存储租用者信息 用于存储出租者信息 3.3 库中各个表的设计

1.管理员基本信息表

管理员基本信息表Custodian用于维护管理员的基本情况,主键为Login_id。表中各字段定义及描述如表3-2所示。

表3-2 Custodian表

字段名 Login_id Login_pw name sex age phone study 数据类型 长度 varchar varchar varchar varchar varchar varchar varchar 50 50 50 50 50 50 50 是否为空 No No Yes Yes Yes Yes Yes 是否主键 是 否 否 否 否 否 否 字段意义 用户名称 密 码 姓 名 性 别 年 龄 电 话 学 历 2.出售房屋基本信息表

出售房屋基本信息表Custodian用于说明出售房屋的基本情况,主键为sellhouse_id。表中各字段定义及描述如表3-3所示。

6

表3-3 Sellhouse表

字段名 sellhouse_id sellhouse_type sellhouse_area sellhouse_floor sellhouse_money sellhouse_address 数据类型 长度 是否为空 varchar varchar varchar varchar varchar varchar 50 50 50 50 50 50 50 No No No No No No No 是否主键 是 否 否 否 否 否 否 字段意义 房屋编号 房屋类型 房屋面积 所在楼层 所在小区 房屋价钱 房屋地址 sellhouse_decoration varchar 3.出租房屋基本信息表

出租房屋基本信息表Custodian用于说明出租房屋的基本情况,主键为renthouse_id。表中各字段定义及描述如表3-4所示。

表3-4 Renthouse表 字段名 renthouse_id renthouse_type renthouse_area renthouse_floor renthouse_money renthouse_address 4.买房者基本信息表

买房者基本信息表Buy用于说明出买房者的基本情况,主键为buy_id。表中各字段定义及描述如表3-4所示。

表3-5 Buy表 字段名 buy_id buy_num buy_name 数据类型 长度 是否为空 varchar varchar varchar 50 50 50 50 50 No No No No No 7

数据类型 长度 是否为空 varchar varchar varchar varchar varchar varchar 50 50 50 50 50 50 50 No No No No No No No 是否主键 是 否 否 否 否 否 否 字段意义 房屋编号 房屋类型 房屋面积 所在楼层 所在小区 房屋价钱 房屋地址 renthouse_decoration varchar 是否主键 是 否 否 否 否 字段意义 买房者编号 买房者用户名 买房者密码 买房者姓名 买房者账户 buy_password varchar buy_account varchar

5.卖房者基本信息表

卖房者基本信息表Sell用于说明出卖房者的基本情况,主键为sell_id。表中各字段定义及描述如表3-5所示。

表3-6 Sell表 字段名 sell_id sell_num sell_name sell_phone sell_card 数据类型 长度 是否为空 varchar varchar varchar varchar varchar 50 50 50 50 50 50 50 No No No No No No No 是否主键 是 否 否 否 否 否 否 字段意义 买房者编号 买房者用户名 买房者密码 买房者姓名 买房者账户 买房者电话 买房者身份证 sell_password varchar sell_account varchar 6.租用者基本信息表

租用者基本信息表Lease用于说明出租用者的基本情况,主键为lease_id。表中各字段定义及描述如表3-6所示。

表3-7 Lease表

字段名 lease_id lease_num lease_name lease_phone lease_card 数据类型 长度 是否为空 varchar varchar varchar varchar varchar 50 50 50 50 50 50 50 No No No No No No No 是否主键 是 否 否 否 否 否 否 字段意义 租用者编号 租用者用户名 租用者密码 租用者姓名 租用者账户 租用者电话 租用者身份证 lease_password varchar lease_account varchar 7.出租者基本信息表

出租者基本信息表Rent用于说明出租者的基本情况,主键为rent_id。表中各字段定义及描述如表3-6所示。

表3-8 Rent表

8

字段名 rent_id rent_num rent_password rent_name rent_account rent_phone rent_card 数据类型 长度 是否为空 varchar varchar varchar varchar varchar varchar varchar 50 50 50 50 50 50 50 No No No No No No No 是否主键 是 否 否 否 否 否 否 字段意义 出租者编号 出租者用户名 出租者密码 出租者姓名 出租者账户 出租者电话 出租者身份证 8.出售房屋交易基本信息表

出售房屋交易基本信息表Bsbargin用于说明出售房屋交的基本情况,主键为bsbargin_id。表中各字段定义及描述如表3-9所示。

表3-9 Bsbargin表 字段名 bsbargin_id sellhouse_id buy_id sell_id 数据类型 长度 是否为空 varchar varchar varchar varchar 50 50 50 50 No No No No

是否主键 是 否 否 否 字段意义 交易编号 房屋编号 买房者编号 卖房者编号 9.出租房屋交易基本信息表

出租房屋交易基本信息表Lrbargin用于说明出租房屋交的基本情况,主键为lrbargin_id。表中各字段定义及描述如表3-9所示。

表3-10 Lrbargin表

字段名 lrbargin_id renthouse_id lease_id rent_id 数据类型 长度 是否为空 varchar varchar varchar varchar 50 50 50 50 No No No No 是否主键 是 否 否 否 字段意义 交易编号 房屋编号 租用者编号 出租者编号

9

第4章 系统实现

4.1 数据库操作

using System.Data.SqlClient用于实现数据库的连接、执行、和关闭。

string connectionStr = \SqlConnection connection = new SqlConnection(connectionStr); connection.Open();

SqlCommand command = new SqlCommand(sql, connection); SqlDataReader reader = command.ExecuteReader(); command.ExecuteNonQuery(); reader.Close(); connection.Close();

4.2 登录模块实现

本系统的登录界面如图4-1所示,输入姓名和密码,点击确定,判断用户名和密码是否正确,正确可进入系统主界面,否则提示错误信息。点击取消,退出登录窗口。如图4-2、4-3所示。

图4-1 登录界面

10

(1)登录按钮的代码为:

if (texB1.Text != \ {

if (radB1.Checked) {

String sql

=

String.Format(\* from Buy where buy_num

='{0}' and buy_password = '{1}'\ this.texB1.Text, this.texB2.Text);

SqlCommand command = new SqlCommand(sql, connection); SqlDataReader reader =

command.ExecuteReader();

Form16 f16 = new Form16(); if (reader.Read()) {

f16.Show(); } else {

MessageBox.Show(\用户名或密码错误!\提示\MessageBoxIcon.Information);

texB1.Text = \ texB2.Text = \ radB1.Text = \ }

reader.Close(); connection.Close(); }

if (radB2.Checked) {

String

sql

=

String.Format(\* from Custodian where Login_id ='{0}' and Login_pw = '{1}'\ this.texB1.Text, this.texB2.Text);

SqlCommand command = new SqlCommand(sql, connection); SqlDataReader reader =

command.ExecuteReader();

Form2 f2 = new Form2(); if (reader.Read())

{

f2.Show(); } else {

MessageBox.Show(\用户名或密码错误!\提示\MessageBoxIcon.Information);

texB1.Text = \ texB2.Text = \ radB2.Text = \ }

reader.Close(); connection.Close(); }

if (radB3.Checked) {

String

sql

=

String.Format(\='{0}' and sell_password = '{1}'\ this.texB1.Text, this.texB2.Text);

SqlCommand command = new SqlCommand(sql, connection); SqlDataReader reader =

command.ExecuteReader();

Form7 f7 = new Form7(); if (reader.Read()) {

f7.Show(); } else {

MessageBox.Show(\用户名或密码错误!\提示\MessageBoxIcon.Information);

texB1.Text = \ texB2.Text = \ radB1.Text = \ }

reader.Close(); connection.Close(); }

11

if (radB4.Checked) {

String

sql

=

String.Format(\='{0}' and rent_password = '{1}'\ this.texB1.Text, this.texB2.Text);

SqlCommand command = new SqlCommand(sql, connection); SqlDataReader reader

=

command.ExecuteReader();

Form26 f26 = new Form26(); if (reader.Read()) {

f26.Show(); } else {

MessageBox.Show(\用户名或密码错误!\提示\MessageBoxIcon.Information);

texB1.Text = \ texB2.Text = \ radB1.Text = \ }

reader.Close(); connection.Close(); }

if (radB5.Checked) {

String sql

=

图4-2 不完整的用户名和密码

String.Format(\* from Lease where lease_num ='{0}' and lease_password = '{1}'\ this.texB1.Text, this.texB2.Text);

SqlCommand command = new SqlCommand(sql, connection); SqlDataReader reader

=

command.ExecuteReader();

Form27 f27 = new Form27(); if (reader.Read()) {

f27.Show(); } else {

MessageBox.Show(\用户名或密码错误!\提示\MessageBoxIcon.Information);

texB1.Text = \ texB2.Text = \ radB1.Text = \ }

reader.Close(); connection.Close(); } } else

MessageBox.Show(\请将登录信息填写完整!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

this.Hide();

图4-3 错误的用户名和密码

12

4.3 买房者模块实现

买房者主要能查询卖房者信息和出售房屋信息。如图4-4、4-5所示。

图4-4 卖房者信息查询

图4-4 卖房者信息查询界面 (1)查询按钮的代码为: if (radB1.Checked)

{

string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection

connection = new SqlConnection(connectionStr); connection.Open();

SqlCommand command = new SqlCommand();

command.Connection connection;

command.CommandText '{0}'\

this.texB1.Text); SqlDataReader reader = command.ExecuteReader();

this.lvbuy.Items.Clear();

if (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text reader[\

lvi.SubItems.Add(reader[\;

= =

lvi.SubItems.Add(reader[\ng());

lvi.SubItems.Add(reader[\);

lvi.SubItems.Add(reader[\g());

13

=

String.Format(\* from Sell where sell_id =

lvi.SubItems.Add(reader[\));

lvi.SubItems.Add(reader[\);

lvi.SubItems.Add(reader[\g());

this.lvbuy.Items.Add(lvi); } else

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

reader.Close(); connection.Close(); }

if (radB2.Checked) {

string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection

connection = new SqlConnection(connectionStr); connection.Open();

SqlCommand command = new SqlCommand();

command.Connection = connection;

command.CommandText =

String.Format(\* from Sell where

sell_name= '{0}'\

this.texB1.Text); SqlDataReader reader = command.ExecuteReader(); this.lvbuy.Items.Clear();

if (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text =

reader[\

lvi.SubItems.Add(reader[\;

lvi.SubItems.Add(reader[\ng());

lvi.SubItems.Add(reader[\);

lvi.SubItems.Add(reader[\g());

lvi.SubItems.Add(reader[\));

lvi.SubItems.Add(reader[\);

lvi.SubItems.Add(reader[\g());

this.lvbuy.Items.Add(lvi); } else

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

reader.Close(); connection.Close(); }

if (radB3.Checked) {

string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection

connection = new SqlConnection(connectionStr); connection.Open();

SqlCommand command = new SqlCommand();

command.Connection = connection;

command.CommandText

=

14

String.Format(\*

from

Sell

where

sell_phone = '{0}'\

this.texB1.Text); SqlDataReader reader = command.ExecuteReader(); this.lvbuy.Items.Clear();

if (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text =

reader[\

lvi.SubItems.Add(reader[\;

lvi.SubItems.Add(reader[\ng());

lvi.SubItems.Add(reader[\);

(2)全部显示按钮的代码为:

string connectionStr = \Initial

Catalog=

'House';

Integrated

Security=true\

SqlConnection connection = new SqlConnection(connectionStr); connection.Open();

SqlCommand command = new SqlCommand();

command.Connection = connection; command.CommandText = \from Sell\

SqlDataReader reader =

command.ExecuteReader();

this.lvbuy.Items.Clear(); while (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text =

reader[\

lvi.SubItems.Add(reader[\g());

lvi.SubItems.Add(reader[\));

lvi.SubItems.Add(reader[\);

lvi.SubItems.Add(reader[\g());

this.lvbuy.Items.Add(lvi); } else

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

reader.Close(); connection.Close(); }

lvi.SubItems.Add(reader[\;

lvi.SubItems.Add(reader[\ng());

lvi.SubItems.Add(reader[\);

lvi.SubItems.Add(reader[\g());

lvi.SubItems.Add(reader[\));

lvi.SubItems.Add(reader[\);

lvi.SubItems.Add(reader[\g());

15

this.lvbuy.Items.Add(lvi); }

reader.Close(); connection.Close();

图4-5 出售房屋信息查询

(1)查询按钮的代码为:

if (texB1.Text.Trim() != \ {

if (radB1.Checked) {

string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection connection = new SqlConnection(connectionStr); connection.Open();

SqlCommand command = new SqlCommand();

command.Connection connection;

command.CommandText sellhouse_area = '{0}'\

this.texB1.Text); SqlDataReader command.ExecuteReader();

this.lvSellhouse.Items.Clear();

while (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text reader[\

lvi.SubItems.Add(reader[\ing());

lvi.SubItems.Add(reader[\= =

ing());

lvi.SubItems.Add(reader[\ring());

lvi.SubItems.Add(reader[\=

.ToString());

reader

=

String.Format(\* from Sellhouse where

16

lvi.SubItems.Add(reader[\ring());

lvi.SubItems.Add(reader[\String());

this.lvSellhouse.Items.Add(lvi); }

if (lvSellhouse.Items.Count <= 0)

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information); reader.Close(); connection.Close(); }

if (radB2.Checked) {

string connectionStr1

=

\Source='(local)'; Initial Catalog= 'House';

Integrated Security=true\

SqlConnection connection1 = new SqlConnection(connectionStr1); connection1.Open();

SqlCommand command1 = new SqlCommand();

command1.Connection = connection1;

command1.CommandText =

String.Format(\* from Sellhouse where

sellhouse_type = '{0}'\

this.texB1.Text); SqlDataReader reader1

=

command1.ExecuteReader();

this.lvSellhouse.Items.Clear();

while (reader1.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text =

reader1[\

lvi.SubItems.Add(reader1[\

ring());

lvi.SubItems.Add(reader1[\ring());

lvi.SubItems.Add(reader1[\tring());

lvi.SubItems.Add(reader1[\].ToString());

lvi.SubItems.Add(reader1[\tring());

lvi.SubItems.Add(reader1[\oString());

this.lvSellhouse.Items.Add(lvi); } if (lvSellhouse.Items.Count <= 0)

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information); reader1.Close(); connection1.Close(); } if (radB3.Checked) {

string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection connection = new SqlConnection(connectionStr); connection.Open();

SqlCommand command = new SqlCommand();

command.Connection = connection;

command.CommandText =

String.Format(\* from Sellhouse where

sellhouse_decoration ='{0}'\

this.texB1.Text); SqlDataReader

reader =

17

command.ExecuteReader();

this.lvSellhouse.Items.Clear();

while (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text =

reader[\

lvi.SubItems.Add(reader[\ing());

lvi.SubItems.Add(reader[\ing());

lvi.SubItems.Add(reader[\ring());

lvi.SubItems.Add(reader[\.ToString());

lvi.SubItems.Add(reader[\ring());

lvi.SubItems.Add(reader[\String());

this.lvSellhouse.Items.Add(lvi); }

if (lvSellhouse.Items.Count <= 0)

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information); reader.Close(); connection.Close(); }

if (radB4.Checked) {

string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection connection = new SqlConnection(connectionStr);

connection.Open();

SqlCommand command = new SqlCommand();

command.Connection = connection;

command.CommandText =

String.Format(\* from Sellhouse where

sellhouse_address like '%{0}%'\

this.texB1.Text); SqlDataReader reader =

command.ExecuteReader();

this.lvSellhouse.Items.Clear();

while (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text =

reader[\

lvi.SubItems.Add(reader[\ing());

lvi.SubItems.Add(reader[\ing());

lvi.SubItems.Add(reader[\ring());

lvi.SubItems.Add(reader[\.ToString());

lvi.SubItems.Add(reader[\ring());

lvi.SubItems.Add(reader[\String());

this.lvSellhouse.Items.Add(lvi); }

if (lvSellhouse.Items.Count <= 0)

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK,

18

MessageBoxIcon.Information); reader.Close(); connection.Close(); }

} else

MessageBox.Show(\请输入您要查询的信息!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

(2)全部显示按钮的代码为:

command.CommandText = \ SqlDataReader reader = command.ExecuteReader(); this.lvSellhouse.Items.Clear(); while (reader.Read()) {

ListViewItem lvi = new ListViewItem(); lvi.Text = reader[\

lvi.SubItems.Add(reader[\ lvi.SubItems.Add(reader[\ lvi.SubItems.Add(reader[\ lvi.SubItems.Add(reader[\ lvi.SubItems.Add(reader[\ lvi.SubItems.Add(reader[\ this.lvSellhouse.Items.Add(lvi); }

4.4 管理员模块实现

管理员主要能对用户和交易信息进行增删查改,如图如图4-6、4-7、4-8、4

-9、4-10所示。

图4-6 买房者信息添加界面

19

(1)确认按钮的代码为:

if(texB1.Text.Trim()!= \& texB2.Text.Trim() != \

&

texB3.Text.Trim()

!=

\

&

texB4.Text.Trim() != \& texB5.Text.Trim() != \& texB6.Text.Trim() != \\

{

SqlCommand command = new SqlCommand();

command.Connection =

connection;

command.CommandText =

String.Format(\buy_id from Buy where

buy_id = '{0}'\

this.texB1.Text); Int count

= command.ExecuteNonQuery(); if (count > 0) {

MessageBox.Show(\用户编号已存在,请重新输入!\错误\

MessageBoxButtons.OK, MessageBoxIcon.Error); } else { try {

String sql

=

String.Format(\ \buy_num,

buy_password, buy_name, buy_account, buy_phone,

buy_card)\

(2)取消按钮的代码为: this.Close();

\('{0}', '{1}', '{2}', '{3}', '{4}', '{5}', '{6}')\

this.texB1.Text, this.texB2.Text,

this.texB3.Text, this.texB4.Text,

this.texB5.Text, this.texB6.Text,

this.texB7.Text); command.CommandText = sql;

command.ExecuteNonQuery();

MessageBox.Show(\添加成功!\

} catch {

MessageBox.Show(\添加失败!\

} }

connection.Close(); this.Close(); }

else

MessageBox.Show(\请您填写完整信息后,再添加!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

20

图4-7 买房者信息管理界面 (1)删除按钮的代码为:

try{

SqlCommand command = new SqlCommand(); command.Connection = connection;

command.CommandText = \from Buy where

buy_id='\

+

lvbuy.SelectedItems[0].SubItems[0].Text + \ command.ExecuteNonQuery(); connection.Close();

lvbuy.Items.Remove(lvbuy.SelectedItems[0]); MessageBox.Show(\删除成功!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information); } catch{

MessageBox.Show(\请选择您要删除的记录!\\

\

MessageBoxButtons.OK,

MessageBoxIcon.Information); }

if (radB1.Checked) {

string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection

connection = new SqlConnection(connectionStr); connection.Open();

SqlCommand command = new SqlCommand();

command.Connection connection;

command.CommandText '{0}'\

this.texB1.Text); SqlDataReader reader = command.ExecuteReader(); this.lvbuy.Items.Clear();

if (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text reader[\

lvi.SubItems.Add(reader[\

lvi.SubItems.Add(reader[\g());

lvi.SubItems.Add(reader[\;

lvi.SubItems.Add(reader[\

21

= =

String.Format(\

=

(2)查询按钮的代码为:

());

lvi.SubItems.Add(reader[\);

lvi.SubItems.Add(reader[\;

this.lvbuy.Items.Add(lvi); } else

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

reader.Close(); connection.Close(); }

if (radB2.Checked) {

string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection

connection = new SqlConnection(connectionStr); connection.Open();

SqlCommand command = new SqlCommand();

command.Connection = connection;

command.CommandText =

String.Format(\

'{0}'\

this.texB1.Text); SqlDataReader reader = command.ExecuteReader(); this.lvbuy.Items.Clear();

if (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text =

reader[\

lvi.SubItems.Add(reader[\

lvi.SubItems.Add(reader[\g());

lvi.SubItems.Add(reader[\;

lvi.SubItems.Add(reader[\());

lvi.SubItems.Add(reader[\);

lvi.SubItems.Add(reader[\;

this.lvbuy.Items.Add(lvi); } else

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

reader.Close(); connection.Close(); }

if (radB3.Checked) { string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection

connection = new SqlConnection(connectionStr); connection.Open();

SqlCommand command = new SqlCommand();

command.Connection = connection;

command.CommandText =

String.Format(\

= '{0}'\ this.texB1.Text); SqlDataReader reader = command.ExecuteReader();

22

this.lvbuy.Items.Clear();

if (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text =

reader[\

lvi.SubItems.Add(reader[\

lvi.SubItems.Add(reader[\g());

lvi.SubItems.Add(reader[\;

lvi.SubItems.Add(reader[\

(3)刷新按钮的代码为:

command.CommandText = \ SqlDataReader reader

=

command.ExecuteReader();

this.lvbuy.Items.Clear(); while (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text =

reader[\

lvi.SubItems.Add(reader[\

lvi.SubItems.Add(reader[\g());

());

lvi.SubItems.Add(reader[\);

lvi.SubItems.Add(reader[\;

this.lvbuy.Items.Add(lvi); } else

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

reader.Close(); connection.Close(); }

lvi.SubItems.Add(reader[\;

lvi.SubItems.Add(reader[\());

lvi.SubItems.Add(reader[\);

lvi.SubItems.Add(reader[\;

this.lvbuy.Items.Add(lvi); }

23

图4-8 买房者信息修改界面

修改按钮的代码为:

if(texB1.Text.Trim()

!=

\

&

\+ texB6.Text +

\texB7.Text

+

\

WHERE

buy_id='\

WindowsFormsApplication1.Form6.sellhouse.sh \=

command.ExecuteNonQuery();

MessageBox.Show(\修改成功!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information); } catch +

{

MessageBox.Show(\修改失败!\+

}

+ + +

texB2.Text.Trim() != \& texB3.Text.Trim() != \& texB4.Text.Trim() != \\

&

texB6.Text.Trim()

!=

\

&

texB7.Text.Trim() != \

SqlCommand command = new SqlCommand(); command.Connection connection;

try {

command.CommandText= String.Format(\Buy set buy_id ='\+ texB1.Text +

\\

texB4.Text

texB2.Text + \+ texB3.Text +

24

图4-9 出售房屋交易信息管理界面

(1)查询按钮的代码为:

radB3.Visible = true; radB4.Visible = true;

if (texB1.Text.Trim() != \ {

if (radB1.Checked) {

string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection

connection = new SqlConnection(connectionStr); connection.Open(); lvsb.Columns.Clear(); lvsb.Columns.Add(\交易编号\

lvsb.Columns.Add(\房屋编号\

lvsb.Columns.Add(\买房者编号\

lvsb.Columns.Add(\卖房者编号\

SqlCommand command = new SqlCommand();

command.Connection connection;

command.CommandText

bsbargin_id = '{0}'\

this.texB1.Text); SqlDataReader reader = command.ExecuteReader(); this.lvsb.Items.Clear();

if (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text reader[\

lvi.SubItems.Add(reader[\g()); this.lvsb.Items.Add(lvi); } else = =

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

25

=

lvi.SubItems.Add(reader[\

lvi.SubItems.Add(reader[\

String.Format(\* from Bsbargin where

reader.Close(); connection.Close(); }

if (radB2.Checked) {

string connectionStr1 = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection

connection = new SqlConnection(connectionStr1); connection.Open(); lvsb.Columns.Clear(); lvsb.Columns.Add(\交易编号\

lvsb.Columns.Add(\房屋编号\

lvsb.Columns.Add(\买房者编号\

lvsb.Columns.Add(\卖房者编号\

SqlCommand command1 = new SqlCommand();

command1.Connection =

connection;

command1.CommandText = String.Format(\* from Bsbargin where sellhouse_id = '{0}'\

this.texB1.Text); SqlDataReader reader = command1.ExecuteReader(); this.lvsb.Items.Clear();

if (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text =

reader[\

lvi.SubItems.Add(reader[\g());

lvi.SubItems.Add(reader[\

lvi.SubItems.Add(reader[\

this.lvsb.Items.Add(lvi); } else

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

reader.Close(); connection.Close(); }

if (radB3.Checked) {

string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection

connection = new SqlConnection(connectionStr); connection.Open(); lvsb.Columns.Clear(); lvsb.Columns.Add(\交易编号\

lvsb.Columns.Add(\房屋编号\

lvsb.Columns.Add(\买房者编号\

lvsb.Columns.Add(\卖房者编号\

SqlCommand command = new SqlCommand();

command.Connection = connection;

command.CommandText =

String.Format(\* from Bsbargin where

sell_id = '{0}'\

this.texB1.Text); SqlDataReader reader = command.ExecuteReader(); this.lvsb.Items.Clear();

while (reader.Read()) {

ListViewItem lvi = new ListViewItem();

lvi.Text =

reader[\

26

lvi.SubItems.Add(reader[\g());

lvi.SubItems.Add(reader[\

lvi.SubItems.Add(reader[\ this.lvsb.Items.Add(lvi); }

if(lvsb.Items.Count <=0) MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

reader.Close(); connection.Close(); }

if (radB4.Checked) {

string connectionStr = \Source='(local)'; Initial Catalog= 'House'; Integrated Security=true\

SqlConnection

connection = new SqlConnection(connectionStr); connection.Open(); lvsb.Columns.Clear(); lvsb.Columns.Add(\交易编号\

lvsb.Columns.Add(\房屋编号\

lvsb.Columns.Add(\买房者编号\

lvsb.Columns.Add(\卖房者编号\

SqlCommand command = new SqlCommand();

command.Connection =

connection;

(2)删除按钮的代码为:

try {

command.CommandText = \ from Bsbargin

where

bsbargin_id='\

+

lvsb.SelectedItems[0].SubItems[0].Text + \ command.ExecuteNonQuery();

command.CommandText =

String.Format(\* from Bsbargin where

buy_id = '{0}'\

this.texB1.Text); SqlDataReader reader = command.ExecuteReader(); this.lvsb.Items.Clear();

while(reader.Read()) { ListViewItem lvi =

new ListViewItem();

lvi.Text = reader[\

lvi.SubItems.Add(reader[\g());

lvi.SubItems.Add(reader[\

lvi.SubItems.Add(reader[\ this.lvsb.Items.Add(lvi); }

if (lvsb.Items.Count <= 0)

MessageBox.Show(\没有您查询的相关信息,请重新输入!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

reader.Close(); connection.Close(); } } else

MessageBox.Show(\请输入您查询的信息!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

connection.Close(); lvsb.Items.Remove(lvsb.SelectedItems[0]); MessageBox.Show(\删除成功!\提示\MessageBoxIcon.Information);

27

} catch {

MessageBox.Show(\请选择您

要删除的记录!\提示\MessageBoxIcon.Information); }

(3)刷新按钮的代码为:

lvsb.Columns.Clear();

lvsb.Columns.Add(\交易编号\

ListViewItem();

lvi.Text

=

lvsb.Columns.Add(\房屋编号\reader[\ lvsb.Columns.Add(\买房者编号\

lvsb.Columns.Add(\卖房者编号\ SqlCommand command

=

new

SqlCommand();

command.Connection = connection; command.CommandText = \from Bsbargin\

SqlDataReader reader

=

command.ExecuteReader();

this.lvsb.Items.Clear(); while (reader.Read()) {

ListViewItem lvi = new

图4-10出售房屋交易确认界面

确认按钮的代码为:

command.CommandText = String.Format(\sellhouse_id from Sell where sell_id ='{0}'\

cBox3.Text);

SqlDataReader reader

=

command.ExecuteReader();

while (reader.Read())

lvi.SubItems.Add(reader[\g());

lvi.SubItems.Add(reader[\

lvi.SubItems.Add(reader[\

this.lvsb.Items.Add(lvi); }

图4-11出售房屋交易添加界面

{

texB2.Text =

reader[\ }

reader.Close(); DialogResult

result =

28

MessageBox.Show(\确认交易?\\提示\MessageBoxButtons.OKCancel, MessageBoxIcon.Question);

if (result == DialogResult.OK) {

command.CommandText =

String.Format(\

where bsbargin_id = '{0}'\

this.texB1.Text); int count

=

command.ExecuteNonQuery(); if (count > 0) {

MessageBox.Show(\交易编号已存在,请重新输入!\错误\

MessageBoxButtons.OK, MessageBoxIcon.Error); } else { try {

String sql

=

String.Format(\

\ \('{0}', '{1}', '{2}', '{3}')\

this.texB1.Text, this.cBox3.Text,

this.texB2.Text, this.cBox2.Text);

command.CommandText = sql;

command.ExecuteNonQuery();

command.CommandText = String.Format(\'{0}'\ command.ExecuteNonQuery();

command.CommandText = String.Format(\from Sell where sell_id = '{0}'\ command.ExecuteNonQuery();

command.CommandText = String.Format(\from Sellhouse where sellhouse_id = '{0}'\ command.ExecuteNonQuery(); this.Close(); MessageBox.Show(\添加成功!\

} catch {

MessageBox.Show(\添加失败!\

} } } } else

MessageBox.Show(\请您填写完整信息后,再交易!\\提示\MessageBoxButtons.OK, MessageBoxIcon.Information);

29

第5章 系统使用说明

用户必须按照不同的权限登陆系统否则,将登陆失败! 买房者登陆后只能查询卖房者信息和出售房屋信息; 卖房者登陆后只能查询买房者信息和出售房屋信息; 租用者登陆后只能查询出租者信息和出售房屋信息; 出租者登陆后只能查询租用者信息和出售房屋信息;

管理员登陆后可以对出租房屋信息、出售房屋信息、买房者、卖房者、租用者、出租者的所有信息进行增删查改,以及对出售房屋交易信息和出租房屋交易信息进行查询和添加!

30

第6章 课程设计总结

6.1 主要问题及解决办法

这次课程设计我主要遇到了3个问题:

1.不会窗体间传值,就是把图4-7 listview中选中的那一行传到图4-8的textbox中,然后进行修改,最后向别人请教后才知道先在图4-7 的窗体中建一个类,然后再到图4-8 的窗体中调用。

2.不会将用户编号添加到交易信息表中的combox来让管理员选编号而不是自己写编号,最后在网上查了之后以及自己查阅相关的例子才知道,这个并不是很难,就是在加载窗体时,再读一次用户数据库即可。

3.这个问题是老师验收时给我发现的,没有把卖房者和房源信息结合起来,这才发现自己的数据库有一点不合理,然后我就在卖房者信息里加了一个属性,房屋编号,把它和房源信息结合了起来,这样在交易信息时只要选择卖房者编号,房屋编号就会自动显示,很好的避免了管理员把房屋编号选错,感觉很合理!

6.2 课程设计体会

通过本次课程设计我学到了不少东西,虽然花了很长时间,但自己感到很有成就感。这次课程设计老师提前就把题目发给我们了,我也是提前做的,本以为自己可以很快做完复习别的,但是当我做了几天后发现,远远没有我想象的那么简单,刚开始我以为每个管理模块只要有增删查改就行了,但是随着自己的想法和实际的的靠近,我感觉增删查改完成了是最基本的,更重要的是后台的一些联系,然而这一改牵一发得动全身,没办法,自己又大改了一次。最后,去找老师验收时老师又发现了一个漏洞,确实,老师说的和合理,所以自己又大改了一次。这才完成了课设的基本验收!

这次课设虽然做的一波三折,但却学到了好多东西,感觉自己也成长了不少。现在想起同宿舍的小伙伴们那一周从早到晚不出去呆在宿舍做课设,就像高三一样真的很值得,回忆起来确实很美好啊!

6.3 自我评定

感觉自己本次的课程设计做的不错,功能齐全,后台运行合理!

31

参考文献

[1] 周纲,赵永军,孙伟.PowerBuilder项目开发实践.中国铁道出版社,2003,8 [2] 方小伟等.《PowerBuilder软件开发项目实践》清华大学出版社,2004,6 [3] S. Niwa, M. Suzuki and K. Kimura. Electrical Shock Absorber for Docking System in Space. IEEE International Workshop on Intelligent Motion Control, Bogazici University, Istenbul. 1990: 825-830

32

评 语 指 导教师评语及设计成绩 课程设计成绩: 指导教师: 日期: 年 月 日

33

本文来源:https://www.bwwdw.com/article/vfzw.html

Top