目录

摘要............................................................................................................................. 2

1.概述......................................................................................................................... 3

2.课程设计任务的需求分析.................................................................................... 3

2.1设计任务..................................................................................................... 3

2.2设计要求..................................................................................................... 3

2.3需求描述的规范文档................................................................................. 3

3.概念结构设计...................................................................................................... 4

3.1概念结构设计工具(E-R模型).................................................................. 4

3.2系统描述..................................................................................................... 5

4.逻辑结构设计........................................................................................................ 5

4.1关系数据模式............................................................................................. 5

5.数据库物理设计与实施...................................................................................... 6

5.1数据库应用的硬件、软件环境介绍...................................................... 6

5.2建库建表.................................................................................................... 6

5.3加载测试数据............................................................................................ 6

6. 数据操作要求及实现.......................................................................................... 7

数据库链接方法................................................................................................ 7

6.1 查询............................................................................................................ 7

6.2 添加............................................................................................................ 9

6.3 修改.......................................................................................................... 10

6.4 删除.......................................................................................................... 12

7.查询截图(包括程序流程图,数据库链接方法).......................................... 13

7.1 登录界面.................................................................................................. 14

7.2 用户界面.................................................................................................. 15

7.3 添加界面.................................................................................................. 16

7.4显示界面................................................................................................... 17

7.5 更改界面.................................................................................................. 18

8.收获、体会、建议.............................................................................................. 19

9.主要参考文献   14

摘要

小区物业管理系统是现如今各大居住地区常见的计算机信息管理系统。由于我国人口数量基数庞大,小区的数量也在不断的增加,在这样一个社会,小区管理系统变得日益抢手,管理人员对平日里繁琐的管理工作,可以通过小区管理系统来有效的管理小区的各种事务,包括对楼宇、楼房、管理员、业主的信息管理,还有对物业信息进行管理等。还能在第一时间里查询到相关的信息,不用再去翻记事本,迅速准确的完成各住户的日常维修服务,快速打印出报表。在建立与实现小区物业管理系统时,应进行功能划分,能够由数据库管理系统完成的功能应尽可能由数据库管理系统守成,这样才能够充分发挥数据库管理系统高效、完全、可靠、便捷的性能,减少编程人员的工作量

  1. 概述:

课程设计选题目为小区物业管理系统,以mysql作为后台数据库,以C#(Visual Studio 2017)高级语言作为前台开发工具,完成一个数据库应用系统的设计全过程,包括需求分析、数据库设计、数据库建立、数据输入、应用系统的设计和开发、用户界面的设计和实现、用户界面与数据库的连接对数据库中的数据进行增删改查功能的实现、系统安装和调试等.

2.课程设计任务的需求分析

2.1设计任务

选择设计一个具有一定实际意义,界面简洁,功能齐全的小区物业管理系统。

2.2设计要求

现代生活方式下,小区有多栋住宅,每栋楼有多套物业(房屋),衍生了物业管理公司,小区物业管理系统就是借助计算机对小区物业情况提供全面管理服务。

系统的主要管理对象:

·楼宇信息:楼号、户数、物业费标准。

·房屋信息:楼号、房号、面积、楼层等。

·业主信息:身份证号、姓名、性别、工作单位、电话、家庭人口等。

·管理员:工号、姓名、性别、年龄、电话等。

·物业管理情况:日期、业主、要求、处理情况、负责人。

·物业费信息:楼号、房号、缴费日期、起止日期、金额等。

每栋楼物业费标准相同,不同楼物业费标准可以不同;每栋楼有多位管理员参与管理,每个管理员可以管理多栋楼宇;每位业主可以拥有多套房屋,每套房屋只能有一个业主。业主的物管需求要进行登记,要有专人负责处理,并记录处理情况(满意、不满意)。

系统应该可以进行方便的信息登记、调整、查询、统计等工作。

2.3需求描述的规范文档

·楼宇信息:楼号、户数、物业费标准。

·房屋信息:楼号、房号、面积、楼层等。

·业主信息:身份证号、姓名、性别、工作单位、电话、家庭人口等。

·管理员:工号、姓名、性别、年龄、电话等。

·物业管理情况:日期、业主、要求、处理情况、负责人。

·物业费信息:楼号、房号、缴费日期、起止日期、金额等。

系统的基本功能:

1)信息登记(增加);

2)调整(删除、修改);

3)查询信息(查);

4)不统计。

3.概念结构设计

3.1概念结构设计工具(E-R模型)

4. 逻辑结构设计

4.1关系数据模式

在这个数据库中,四个关系模式是:

admin(ano,aname,sex,age,phone)

build(bnum,hum,price,aname)

house(bnum,fnum,area,louceng,yname)

yezhu(shenfenz,yname,sex,gzSpace,phone,family)

这四个关系式子组成了小区物业管理系统的数据库模式,这三个关系组成了小区物业管理系统的关系数据库;关系admin的主键是ano,关系build的主键是bnum,关系house的主键是bnum,关系yezhu的主键是shenfenz,关系admin和关系build有一个共同属性aname,在表build中,aname是外键,关系build和关系house中有共同属性bnum,关系house和关系yezhu中有共同属性yname,在表house中,yname是外键。

5.数据库物理设计与实施

5.1数据库应用的硬件、软件环境介绍.

    本程序基于Microsoft Visual Studio 2017、MySQL Workbench 8.0 CE开发,采用C#语言和SQL语言实现。

5.3 建立数据库建表、加载数据

6.数据操作要求及实现

6.1查询

private void button1_Click(object sender, EventArgs e)

{

if (comboBox2.SelectedIndex == 0)

{

String strcon = "server=localhost;database=login;user=root;password=747298;SslMode=none;charset=utf8";

MySqlConnection con = new MySqlConnection(strcon);

try

{

con.Open();

MySqlCommand com = con.CreateCommand();

com.CommandText = "select * from login.build where bnum='" + textBox1.Text + "'";

MySqlDataReader reader = com.ExecuteReader();

while (reader.Read())

{

string no = reader.GetString(reader.GetOrdinal("bnum"));

string hnum = reader.GetString(reader.GetOrdinal("hnum"));

string price = reader.GetString(reader.GetOrdinal("price"));

string admin = reader.GetString(reader.GetOrdinal("aname"));

textBox2.Text += no.ToString() + ' ' + hnum.ToString() + ' ' + price.ToString()+ ' ' + admin.ToString() + ' ';

break;

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message.ToString() + "打开数据库失败");

}

}

if (comboBox2.SelectedIndex == 1)

{

String strcon = "server=localhost;database=login;user=root;password=747298;SslMode=none;charset=utf8";

MySqlConnection con = new MySqlConnection(strcon);

try

{

con.Open();

MySqlCommand com = con.CreateCommand();

com.CommandText = "select * from login.house where bnum='" + textBox1.Text + "'";

MySqlDataReader reader = com.ExecuteReader();

while (reader.Read())

{

string no = reader.GetString(reader.GetOrdinal("bnum"));

string fnum = reader.GetString(reader.GetOrdinal("fnum"));

string area = reader.GetString(reader.GetOrdinal("area"));

string louceng = reader.GetString(reader.GetOrdinal("louceng"));

string yname = reader.GetString(reader.GetOrdinal("yname"));

textBox2.Text += no.ToString() + ' ' + fnum.ToString() + ' ' + area.ToString() + ' '+louceng.ToString()+' ' + yname.ToString() + ' ';

break;

}

}

catch (Exception ex)

{

MessageBox.Show(ex.Message.ToString() + "打开数据库失败");

}

}创建MySqlDataReader对象来读取信息,用一个while循环把查询到的信息全部输出到textbox中显示,当无法找到查询的数据或已没有匹配的数据时,结束循环。用catch获取异常,出现错误时会出现错误提示,对写程序时有很大帮助。

6.2添加

private void checkNull()

{

con.Open();

if (textBox1.Text == "")

{

MessageBox.Show("请输入身份证号码!");

return;

}

else if (textBox2.Text == "")

{

MessageBox.Show("请输入姓名!");

return;

}

else if (comboBox1.SelectedIndex < 0)

{

MessageBox.Show("请选择性别!");

return;

}

else if (textBox3.Text == "")

{

MessageBox.Show("请输入年龄!");

return;

}

else if (textBox4.Text == "")

{

MessageBox.Show("请输入手机号码!");

return;

}

string sql = "select * from login.admin where ano = '" + textBox1.Text.Trim() + "'";

MySqlCommand com = new MySqlCommand(sql, con);

if (Convert.ToInt32(com.ExecuteScalar()) < 0)

{

MessageBox.Show("该管理员已存在!");

return;

}

sql = "insert into login.admin (ano,aname,sex,age,phone ) values( '" + textBox1.Text.Trim() + "' , '" + textBox2.Text.Trim() +

"' , '" + comboBox1.Text.Trim() + "' , '" + textBox3.Text.Trim() + "' , ' " + textBox4.Text.Trim() + "')";

MySqlCommand cmd = new MySqlCommand(sql,con);

cmd.ExecuteNonQuery();

MessageBox.Show("请刷新界面查看数据");

}

private void button1_Click(object sender, EventArgs e)

{

checkNull();

this.Close();

}

利用一个checkNull函数来实现添加的功能,确定按钮的click事件即为调用checkNull方法与关闭当前页面,在checkNull方法中,会检测是否有没输入的信息,会有报错提示然后退出页面,不添加到数据库表中,当信息全部填上后,会有相应的语句判断主键的值是否唯一,比如这里的ano为管理员的编号,管理员编号唯一,先把select语句封装到string对象sql中,再通过 MySqlCommand com = new MySqlCommand(sql,con);传到数据库进行读取,如果出现重复编号,显示错误提示,并关闭当前页面。当一切都符合条件时,才会执行下面的插入语句。

6.3修改

else if (comboBox4.SelectedIndex == 3)

{

string s = textBox5.Text;

updateg a = new updateg(s);

a.ShowDialog();

}

当按下调整按钮后,会根据输入的信息与选择的表进行跳转,此处为跳转到更新管理员的界面。

public updateg()

{

InitializeComponent();

}

string s1;

public updateg(string s)

{

s1 = s;

InitializeComponent();

}

public static String strcon = "server=localhost;database=login;user=root;password=747298;SslMode=none;charset=utf8";

MySqlConnection con = new MySqlConnection(strcon);

private void checkNull()

{

con.Open();

if (textBox1.Text == "")

{

MessageBox.Show("请输入姓名!");

return;

}

else if (comboBox1.SelectedIndex < 0)

{

MessageBox.Show("请输入性别!");

return;

}

else if (textBox2.Text == "")

{

MessageBox.Show("请输入年龄!");

return;

}

else if (textBox3.Text == "")

{

MessageBox.Show("请输入手机!");

return;

}

String sql = "update  login.admin set aname = '" + textBox1.Text.Trim() +

"' ,sex='" + comboBox1.Text.Trim() + "', age = '" + textBox2.Text.Trim() + "', phone = '" + textBox3.Text.Trim() + "' where ano = '" + s1 + "' ";

MySqlCommand cmd = new MySqlCommand(sql, con);

cmd.ExecuteNonQuery();

MessageBox.Show("请刷新界面查看数据");

}

private void button1_Click(object sender, EventArgs e)

{

checkNull();

this.Close();

}

private void button2_Click(object sender, EventArgs e)

{

this.Close();

}

}

给了该页面一个有参数的构造方法,由上一页面传值给该页面的形参,形参的值给到s1对象,再把值传到update语句中的条件where ano=中,此处ano=s1,即是上一个页面传进来的值,实现了一个页面传值,再把需要修改的信息填上,同样出现不填的信息会出现错误提示并退出页面。

6.4删除

if (comboBox3.SelectedIndex == 0)

{

String strcon = "server=localhost;database=login;user=root;password=747298;SslMode=none;charset=utf8";

MySqlConnection con = new MySqlConnection(strcon);

con.Open();

string sql = "delete from login.build where bnum='" + textBox3.Text + "'";

MySqlCommand cmd = new MySqlCommand(sql, con);

cmd.ExecuteNonQuery();

MessageBox.Show("请刷新界面查看数据");

}

if (comboBox3.SelectedIndex == 1)

{

String strcon = "server=localhost;database=login;user=root;password=747298;SslMode=none;charset=utf8";

MySqlConnection con = new MySqlConnection(strcon);

con.Open();

string sql = "delete from login.house where bnum= '" + textBox3.Text + "'and fnum='" + textBox4.Text + "'";

MySqlCommand cmd = new MySqlCommand(sql, con);

cmd.ExecuteNonQuery();

MessageBox.Show("请刷新界面查看数据");

}

if (comboBox3.SelectedIndex == 2)

{

String strcon = "server=localhost;database=login;user=root;password=747298;SslMode=none;charset=utf8";

MySqlConnection con = new MySqlConnection(strcon);

con.Open();

string sql = "delete from login.yezhu where shenfenz='" + textBox3.Text + "'";

MySqlCommand cmd = new MySqlCommand(sql, con);

cmd.ExecuteNonQuery();

MessageBox.Show("请刷新界面查看数据");

}

if (comboBox3.SelectedIndex == 3)

{

String strcon = "server=localhost;database=login;user=root;password=747298;SslMode=none;charset=utf8";

MySqlConnection con = new MySqlConnection(strcon);

con.Open();

string sql = "delete from login.admin where ano='" + textBox3.Text + "'";

MySqlCommand cmd = new MySqlCommand(sql, con);

cmd.ExecuteNonQuery();

MessageBox.Show("请刷新界面查看数据");

}

删除语句最为简单,也是通过获取textbox中的值来赋值给主键,把删除语句封装到MySqlCommand对象中,实现删除功能。

7.查询截图

数据库链接方法

引用插件MySQL.DATA

using System.Windows.Forms;

连接数据库语句 public static

String strcon = "server=localhost;database=login;user=root;password=123456;SslMode=none;charset=utf8";

MySqlConnection con = new MySqlConnection(strcon);

con.Open();

1.登录界面

  1. 用户界面

3.添加数据

4.数据库显示数据

5.更改

项目文件

8.收获、体会、建议

经过这次的数据库程序设计的完成,我从一无所知到对C#中界面的控件使用更加熟练,更加了解其功能,知道该如何调用数据库的数据,对C#中的方法代码有更深的了解,这对其他语言有一定的促进作用。一开始,很担心这次的大作业,因为要用到C#而大家又从来没接触过,在制作的过程中也碰到了许多难题,不懂得以及从未接触过的知识点,比如:如何用c#连接mysql数据库,怎样输入输出,如何跨页面传值。于是通过百度查找学习资料,翻阅csdn阅读他人分享的博客资料,不断尝试。到了现在,我也从这次的大作业中学习到了很多,更加深刻意识到了自学的重要性。

SQL最大的特点就是非过程化,只要输入正确的命令就可以查找所需的数据,不像C语言要查询必须要设计完整的算法。除了C#,我对MYSQL的工具使用也更为的熟练,对数据库中的增、删、改、查等4个指令运用的更为熟练,这对之后的更为深入的数据库操作打下了更为深厚的基础。通过对数据库的学习,我也明白了各行各业对数据库的需要越来越强。如果能够认真学好它将来必有成就。第一次接触SQL语言,感觉并不是很难,基本上按老师的步骤来练习很轻松。慢慢的后来到了表单查询和连接查询,觉得越来越困难。更加让我体会到了人需要不断学习进步,自己不懂得东西还多着,要靠自己不断得去挖掘和尝试,看懂别人的代码可能需要一个小时时间,可自己写出一段好的代码可能需要花费好几倍的精力,除了思考还要多动手当个好的“键盘侠”。

我也发现了自己还存在的不足,对系统的开发完善还有很长的路要走,还用很多东西要去了解,熟悉,这次的系统中也还存在有很多BUG,还没有办法自己独立进行对其完善,要通过自己今后的更深入学习,探究,思考,想出对其进行完善。功能齐全,用户界面简单,易操作,但未能全部实现在窗体软件中显示,还可以改进。

时间:2019.4

9.主要参考文献

1、《数据库系统概论》(第5版) 萨师煊、王珊编著;清华大学出版社

2、《C#程序设计及应用教程》;马俊、邓居英、杨湖;人民邮电出版社

3、《数据库原理及其应用教程(第三版)》;黄德才主编;科学出版社

CSDN博客 百度搜索引擎

小区物业管理系统--数据库应用开发相关推荐

  1. 小区物业管理系统(数据库课程设计)

    这学期学完数据库之后,花了很长时间写了本系统

  2. [附源码]java毕业设计小区物业管理系统论文

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  3. spring boot小区物业管理系统 毕业设计源码101409

    springboot小区物业管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚 ...

  4. (附源码)springboot小区物业管理系统 毕业设计 101409

    springboot小区物业管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚 ...

  5. (附源码)springboot 小区物业管理系统 毕业设计 101409

    springboot小区物业管理系统 摘 要 科技进步的飞速发展引起人们日常生活的巨大变化,电子信息技术的飞速发展使得电子信息技术的各个领域的应用水平得到普及和应用.信息时代的到来已成为不可阻挡的时尚 ...

  6. springboot+mysql水韵新城小区物业管理系统-计算机毕业设计源码18472

    摘  要 随着科学技术的飞速发展,社会的方方面面.各行各业都在努力与现代的先进技术接轨,通过科技手段来提高自身的优势,物业管理当然也不例外.小区物业管理系统是以实际运用为开发背景,运用软件工程原理和开 ...

  7. javaWeb ssh小区物业管理系统myeclipse开发mysql数据库MVC模式java编程计算机网页设计

    一.源码特点      java ssh小区物业管理系统是一套完善的web设计系统(系统采用ssh框架进行设计开发),对理解JSP java编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采 ...

  8. java计算机毕业设计小区物业管理系统源码+系统+数据库+lw文档+mybatis+运行部署

    java计算机毕业设计小区物业管理系统源码+系统+数据库+lw文档+mybatis+运行部署 java计算机毕业设计小区物业管理系统源码+系统+数据库+lw文档+mybatis+运行部署 本源码技术栈 ...

  9. c#+sql语言开发的小区物业管理系统,基于C#环境下的物业管理系统.doc

    成都信息工程学院银杏酒店管理学院 本科生毕业论文(设计) 题 目 明珠苑小区物业管理系统的设计与实现 学生姓名 彭秋月 学 号 2011561281 年级 2011级 指导教师 倪铉珣 教务处制表 二 ...

  10. java计算机毕业设计小区物业管理系统源码+lw文档+系统+数据库

    java计算机毕业设计小区物业管理系统源码+lw文档+系统+数据库 java计算机毕业设计小区物业管理系统源码+lw文档+系统+数据库 本源码技术栈: 项目架构:B/S架构 开发语言:Java语言 开 ...

最新文章

  1. 《马哥出品高薪linux运维教程》wingkeung学习笔记-linux基础入门课程5
  2. 161026、更快速将你的页面展示给用户[前端优化篇]
  3. PMAboutView
  4. C#实践设计模式原则SOLID
  5. .ai域名注册已经极具投资价值进入火爆期
  6. 张斌教授评《你的知识需要管理》
  7. netty实现消息群发
  8. html表格中加横线,表格下划线怎么打出来
  9. 软件测试用例设计方法-判定表法
  10. 使用Mac命令别名,提升工作效率
  11. C/C++结构体语法总结
  12. 【场景实现】Vue+element如何让帖子评论带上emoji,这个需求让我在富文本Quill开始了踩坑连连看
  13. 街篮中服务器维修什么时候能结束,街头篮球手游1月6日微信iOS维护公告 服务器扩容...
  14. kali实验过程与结果讲解
  15. 【c++】单词接龙(暴搜)
  16. JS实现点击跳转登陆邮箱
  17. php秒表计时器,JS实现可暂停秒表计时器的效果(图文详解)
  18. springboot 和 js (vue) 实现SM3加密 防篡改
  19. ubuntu 登录界面卡死解决方法
  20. 漫话:什么是 https ?这应该是全网把 https 讲的最好的一篇文章了

热门文章

  1. javaweb在线考试系统_有没有在线考试系统能承载几千人同时在线考试的?
  2. Intel 1Gb/10Gb网卡在多核处理器中使用的加速技术
  3. Windows API数据类型表
  4. Spring Boot
  5. Apache LoadModule php5_module 配置
  6. 知道是骗子 !好要撞上去!别太得瑟,没啥么好
  7. codeforces621C. Wet Shark and Flowers【求期望】
  8. 【黑客】利用VBS脚本让QQ永远在线,等级速升
  9. java认证考试试卷_java认证考试试题及答案
  10. 【Web 三件套】个人简单博客系统页面搭建(附源码)