《智慧校园系统》课件-项目6数据存储_第1页
《智慧校园系统》课件-项目6数据存储_第2页
《智慧校园系统》课件-项目6数据存储_第3页
《智慧校园系统》课件-项目6数据存储_第4页
《智慧校园系统》课件-项目6数据存储_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智慧校园系统项目6数据存储项目概述数据是物联网的核心驱动力,数据存储是智慧校园系统开发的重要组成部分,本项目将各传感器采集的数据存储到数据库中,实现对采集数据的存储和分析处理。

本项目采用MicrosoftSQLServer2008R2进行数据

存储,结合C#编程实现各传感器采集数据进行存储、更新、删除、修改的基本操作,为后续综合实训的智慧校园相关系统的整合做准备。制作《环境数据表》016.1制作《环境数据表》MicrosoftSQLServer2008R2是Microsoft公司开发的一款关系型数据库管理系统。它是一个全面的数据库平台,数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使程序员可以创建和管理高可用和高性能的数据应用程序。本任务旨在熟悉使用数据库“MicrosoftSQLServer2008R2”软件来创建数据库和数据表,能手动往数据表中添加修改数据。通过本任务的实施,使学生学会MicrosoftSQLServer2008R2创建数据库、数据表。【任务描述】程序运行界面最终效果6.1制作《环境数据表》在任务实施前,需先安装“MicrosoftSQLServer2008R2”软件。安装完成后,打开SQLServerManagementStudio并登录SQL,登录后的主界面如图7-1所示。在左侧“对象资源管理器”面板中选中“数据库”,单击鼠标右键,选择“新建数据库”,数据库名称为“环境数据表”,其余则使用默认设置,单击“确定”,完成数据库创建。新建数据库对话框如图6-2,数据库创建后的查看如图6-3所示。打开“环境数据”数据库,右键单击“表”,选择“新建表”,弹出新建表列名设置,新建表选择界面如图6-4,新建表结构如图6-5所示。列名输入“light”,“temperature”,“humidity”数据类型分别为“varchar(MAX)”,“varchar(MAX)”,“varchar(MAX)”如图6-6所示。单击“保存”按钮,在“选择名称”对话框中输入表名称“EnvironmentWork”。如图6-7所示。在数据库中找到新建的表“EnvironmentWork”,右键选择“编辑前200行”,就可以在表中添加数据,如图6-8所示。在表“EnvironmentWork”中添加一周的环境数据内容,light为光照,temperature为温度,humidity为湿度,数据内容自行设置。【任务实施】6.1制作《环境数据表》数据库数据库DB(Database):是长期存储在计算机内有组织、可共享的数据集合。数据库中的数据是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。数据库管理系统数据库管理系统是位于用户和操作系统之间的一层数据管理软件,如SQL数据库管理系统。它是一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,简称DBMS。它对数据库进行统一的管理和控制,以保证数据库的安全性和完整性。数据表数据表示数据库的组成部分之一,是实际存储数据的地方,每一个数据库都有自己的数据表。数据表由行和列组成的,创建数据表就是定义数据表的列的过程。【知识提炼】6.1制作《环境数据表》字段与记录数据表中每一行称为一条记录,用于表示所存储物体的各方面属性。数据表中的数据项称为字段,字段表示物体某方面的性质,如学生信息中的学号、姓名、出生日期等。主键主键是表中其值能唯一地标识表中的每一行,可以是一个字段或多字段的组合,通过主键可强制表的实体完整性。一个表只能有一个主键,而且主键中的列不能接受空值。例如:学生表(学号,姓名,性别,班级),其中每个学生的学号是唯一的,学号就是一个主键。【知识提炼】6.1制作《环境数据表》Sql数据类型SqlServer提供的系统数据类型有共20多种,它自动限制每个系统数据类型的取值范围,当插入数据库中的值

超过了数据允许的范围时,SqlServer就会报错。常用数据类型如下:1)bit整型:其值只能是0、1或空值。2)tinyint整型:能存储从0到255之间的整数,这种数据类型在数据库中占用1个字节。3)smallint整型:能存储从-32768到32767之间的整数,这种数据类型在数据库中占用2字节。4)int整型:i-2147483648到2147483647之间的整数,几乎能存储数据库所有整型数据,这种数据类型在数据库中占用4字节。5)money货币型

:用来表示钱和货币值,能存储从-9220亿到9220亿之间的数据,精确到货币单位的万分之一。6)float浮点数值型:浮点数从-1.79E+308到1.79E+308之间的任意数,浮点数是近似的,其范围内不是所有的数都能精确表示。

7)Smalldatetime日期时间型:用来表示日期和时间,精确到一分钟。8)datetime日期时间型:用来表示日期和时间,精确到三百分之一秒。9)Uniqueidentifier特殊数据型:用来存储一个全局唯一标识符,即GUID。GUID是一种全局唯一的标识。【知识提炼】6.1制作《环境数据表》Sql数据类型10)char字符型:用来存储指定长度的定长非统一编码型的数据,定义一字段此数据类型时必须指定列长。11)varchar字符型:同char类型一样,用来存储字符数据。但此数据类型为可变长度。当定义一字段为该数据类型时必须指定该列的最大长度。12)text字符型:用来存储大量的字符数据,最多可以有231-1或20亿个字符。13)nvarchar统一编码字符型:用来存储可变长度的字符型数据,能存储4000种字符,使用的字节空间增加了一倍。14)ntext统一编码字符型:此数据类型能存储230-1或将近10亿个字符,且使用的字节空间增加了一倍。15)binary二进制数据类型:用来存储可达8000字节长的定长的二进制数据。16)varbinary二进制数据类型:用来存储可达8000字节长的可变长度的二进制数据。当输入表的内容大小可变时,你应该使用这种数据类型。17)image二进制数据类型:用来存储可变长度的二进制数据。【知识提炼】6.1制作《环境数据表》请实现如下功能:

在数据库“环境数据表”中建立表EnvironmentWorkNew,主键为Id,整形,可以自增,EnvironmentDay为日期型date,EnvironmentWork为varchar(200)。如下图所示。【能力拓展】数据库效果6.1制作《环境数据表》使用sql语句,为新表EnvironmentWorkNew添加一行内容,EnvironmentDay的值为日期为“2017年9月”,EnvironmentWork的值为“环境适宜”。【自主探究】存储校园环境数据026.2存储校园环境数据本任务实现动态采集的环境数据,并通过程序代码将采集到的数据存储到SQL数据库中。通过本任务的实施,使学生了解ADO.NET,学会数据表内容的添加、删除、修改。【任务描述】程序运行界面最终效果6.2存储校园环境数据控件名称控件类型属性名属性值控件功能Form1窗体Text校园灾情数据存储

groupBox1框架容器Text数据显示groupBox2框架容器Text配置groupBox3框架容器Text历史记录txt_light文本框输入/显示光照值txt_temperature文本框输入/显示温度值txt_humidity文本框输入/显示湿度值btn_get命令按钮Text获取控制数据获取btn_save命令按钮Text保存保存数据到sql数据库btnUpdate命令按钮Text修改更新修改的数据btnDelete命令按钮Text删除删除修改的数据btn_Open命令按钮Text开启打开串口com_port下拉列表框显示串口lbl_light标签Text光照lbl_temperature标签Text温度lbl_humidity标签Text湿度dataGridView1DataGridView用于绑定数据库数据界面控件设置6.2存储校园环境数据参照教材,创建数据表;将数字量采集器ADAM4017串口直接接到PC机的串口上。(注明:如果没有硬件设备的读者,这一步忽略);创建新项目,添加DeviceCtrlLibrary.dll引用;创建界面,参照教材图6-11与表6-1;引用DeviceCtrlLibrary、DeviceCtrlLibrary.Model、System.IO.Ports与System.Data.SqlClient命名空间;声明七个全局变量,分别用于连接数据库、存储数据、判断串口是否打开;参照教材代码,添加Form1窗体Load事件,实现读取系统串口,并连接数据库;参照教材代码,添加btn_Open开启按钮单击事件,实现串口设置;参照教材代码,添加btn_get按钮单击事件,实现数据库数据的获取和显示。参照教材代码,添加Databind函数,实现数据库的查询和数据的导出。参照教材代码,添加btn_save按钮、btnUpdate按钮、btnDelete按钮的单击事件,实现数据库数据的保存、修改和删除。【任务实施】6.2存储校园环境数据insert插入语句主要用于向表中添加新数据的操作。已知表user,有3个字段id,username,birthday,向表添加数据:【知识提炼】1)第一种写法(全部都写):Insertintouser(id,username,birthday)values(1,'张三','1999-09-09');在表“user”中插入id,username,birthday,对应的值为1,'张三','1999-09-09'。2)第二种写法(只写部分):Insertintouser(id,username)values(2,'李四');在表“user”中插入id,username,对应的值为1,’李四'。3)第三种写法(不写列名,直接写值,所有的值都要按照表的列的顺序去写):Insertintouservalues(3,'王五','1910-10-10')。语法:insertinto表名(列名一,列名二,列名N)values(列一的值,列二的值,列N的值);6.2存储校园环境数据update更新语句主要用于对表中现有的数据进行更新操作。已知表user,修改表中“张三”的生日改为‘2016-1-1’:【知识提炼】Updateusersetbirthday=’2016-1-1’whereusername=’张三’语法:update表名set列名一=列名的值,列名二=列名的值,列名三=列名...where从句--加上限定条件,只有满足条件的才会被修改,更新(注意:不加where从句,那就是所有的都更新,Sql语句中的字符值要加单引号)。6.2存储校园环境数据delete删除语句主要用于对表中现有的数据进行删除操作。已知表user,删除表中username字段为“张三”的数据,语句如下:【知识提炼】Deletefromuserwhereusername=’张三’语法:deletefrom表名[where从句];如果不加where从句,就会全部删除,例如删除user表中所有的数据:deletefromuser6.2存储校园环境数据ADO.NET对象模型简介ADO.NET是一组向.NET程序员公开数据访问服务的类。ADO.NET为创建分布式数据共享应用程序提供了一组丰富的组件。它提供了对关系数据、XML和应用程序数据的访问,因此是.NETFramework中不可缺少的一部分。

ADO.NET支持多种开发需求,包括创建由应用程序、工具、语言或Internet浏览器使用的前端数据库客户端和中间层业务对象。ADO.NET的类由两部分组成:.NET数据提供程序(DataProvider)和数据集(Dataset)。

数据提供程序负责与数据源的物理连接,而数据集则表示实际的数据,这两部分都可以与数据的使用程序进行通信

。ADO.NET对象模型中有5个主要的组件,分别是Connection对象、Command对象,DataAdapter对象,DataReader对象和DataSet对象。【知识提炼】6.2存储校园环境数据ADO.NET中5个核心组件【知识提炼】对象说明特点Connection建立于特定数据库的连接可以自己创建,也可由其他对象自动产生(如DataAdapter)Command对数据源执行命令透过Connection对象来下达命令,Connection的指向决定操作对象DataAdapter用数据源中的查询结果填充DataSet对中的表DataAdapter填充到DataSet中的是断开连接的脱机数据DataReader从数据库中检索只读的数据流DataReader读取数据必须在维持数据库连接的前提下进行DataSet在内存中缓存从数据源中检索到的数据独立于其他数据源ADO.NET核心组件6.2存储校园环境数据ADO.NET中SQL操作类1)SqlConnection类此类表示SQLServer数据库的一个打开的连接,该类无法继承。SqlConnection对象表示与SQLServer数据源的一个唯一的会话(对于所有第三方SQL服务器产品以及其他支持OLEDB的数据源,请使用OleDbConnectio)。对于客户端/服务器数据库系统,它等效于到服务器的网络连接。SqlConnection与SqlDataAdapter和SqlCommand一起使用,可以在连接MicrosoftSQLServer数据库时提高性能。SqlConnection重载有两个构造函数分别为:一般在处理完事务后就可以关闭该链接。【知识提炼】SqlConnection()初始化SqlConnection类的新实例。SqlConnection(String)如果给定包含连接字符串的字符串,则初始化SqlConnection类的新实例。6.2存储校园环境数据ADO.NET中SQL操作类2)SqlCommand类此类

表示要对SQLServer数据库执行的一个Transact-SQL语句或存储过程。此类重载有四个构造函数:【知识提炼】SqlCommand()初始化SqlCommand类的新实例。SqlCommand(String)用查询文本初始化SqlCommand类的新实例。SqlCommand(String,SqlConnection)初始化具有查询文本和SqlConnection的SqlCommand类的新实例。SqlCommand(String,SqlConnection,SqlTransaction)使用查询文本、一个SqlConnection以及SqlTransaction来初始化SqlCommand类的新实例。6.2存储校园环境数据ADO.NET中SQL操作类3)SqlDataReader类此类提供一种从SQLServer数据库自上而下地读取数据源中的数据,而且这些数据是只读的,不允许进行其他操作。注意:若要创建SqlDataReader,必须调用SqlCommand对象的ExecuteReader方法,而不要直接使用构造函数。后文实例中将有所体现。在使用SqlDataReader时,关联的SqlConnection正忙于为SqlDataReader服务,对SqlConnection无法执行任何其他操作,只能将其关闭。除非调用

SqlDataReader的Close方法,否则会一直处于此状态。例如,在调用Close之前,无法检索输出参数。因此一般在读取操作结束后就需要调用Close方法使SqlConnection可以执行其他操作。【知识提炼】6.2存储校园环境数据通过“任务实施”的操作步骤,已经实现了的环境数据的添加。添加一个图片框,获取监控画面,并将环境数据与监控画面每5分钟添加入数据库。【能力拓展】环境数据界面6.2存储校园环境数据在能力拓展的基础上,为程序增加下列功能:添加一个文本框TextBox(Name属性值为lightValue)用于输入更新条件,当表中“light”值超过TextBox的值时,将数据添加入数据表。【自主探究】查询校园安防数据036.3查询校园安防数据本任务在结合任务一和任务二的基础上,实现灾情数据按时间段查询的功能。通过任务的实施,使学生熟悉select语句和DateTimePicker、DataGridView控件的使用。【任务描述】灾情查询界面最终效果6.3查询校园安防数据控件名称控件类型属性名属性值控件功能LblStartTime标签Text文本开始日期LblEndTime标签Text文本结束日期StartTime日期时间选择Datetime时间起始时间EndTime日期时间选择Datetime时间结束时间btnCx命令按钮Text查询查询groupBox4组合框Text历史记录组合框dataGridView1DataGridView界面控件设置6.3查询校园安防数据创建Form1界面,参照教材图6-13与表6-3;引用System.IO.Ports和System.Data.SqlClient命名空间;声明stringsqlConnectString、SqlConnectionmySqlConnection、SqlCommandmySqlCmd、SqlDataAdaptersqldata和DataSetds全局变量,用于连接数据库;参照教材代码,添加btnCx开启按钮单击事件,查询数据库数据并显示的功能。【任务实施】6.3查询校园安防数据select查询语句1.主要用于从表中选取数据。已知表user,有3个字段id,username,birthday,从表中查询数据:【知识提炼】语法:SELECT列名称FROM表名称

或者

SELECT*FROM表名称1)查询表中所有数据:SELECT*FROMuser2)查询表中id、username数据:SELECTid,usernameFROMuser6.3查询校园安防数据select查询语句2.WHERE子句中的运算符3.AND&OR逻辑运算符AND:所有条件成立,则筛选出这条记录。OR:只要其中一个条件成立,则筛选出这条记录。【知识提炼】运算符描述实例=等于查询表中姓名为张三的生日数据:SELECT*FROMuserwhereusername=’张三’<>不等于。注释:在

SQL的一些版本中,该操作符可被写成!=查询表中姓名不是张三的生日数据:SELECT*FROMuserwhereusername<>’张三’>大于查询表中生日为2000年后的数据:SELECT*FROMuserwhereyear(birthday)>2000<小于查询表中生日为2000年前的数据:SELECT*FROMuserwhereyear(birthday)<2000运算符描述实例>=大于等于查询表中生日为2000年(含2000)后的数据:SELECT*FROMuserwhereyear(birthday)>=2000<=小于等于查询表中生日为2000年(含2000前的数据:SELECT*FROMuserwhereyear(birthday)<=2000BETWEEN在某个范围内查询表中生日为200至2006年之间的数据:SELECT*FROMuserwhereyear(birthday)

between2000in2006LIKE搜索某种模式查询表中姓张的数据:SELECT*FROMuserwhereusername

like

’张%’6.3查询校园安防数据SqlDataAdapter类此类表示用于填充DataSet

和更新SQLServer数据库的一组数据命令和一个数据库连接。SqlDataAdapter是DataSet和SQLServer数据库之间的桥接器,用于检索和保存数据。SqlDataAdapter通过对数据源使用适当的Transact-SQL语句映射Fill(它可更改DataSet中的数据以匹配数据源中的数据)和Update(它可更改数据源中的数据以匹配DataSet中的数据)来提供这一桥接。Dataset类该类可以看做是一个暂时存放在内存中的数据库,它包含一些DataTable(DataSet对象中的每一个表)和DataView等对象。假若

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论