购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

4.5 理解数据入库过程

终端(UE)上行的数据必须有合适的存储空间,以便后期使用;人机交互系统(HCI)下行的数据也需要一个中转处。这些工作需要利用数据库进行。在计算机体系中,数据库的形式多种多样,我们选择Microsoft SQL Server数据库存储NB-IoT系统的数据。

4.5.1 查看数据库与表的简单方法

数据存放在数据库文件 AHL-IoT.mdf 中,该文件处于网上光盘“..\04-Soft\02-HCI\DataBase”文件夹内。该文件夹内还有另一文件 AHL-IoT_log.ldf,它是自动生成的日志文件。

AHL-IoT.mdf 内含几张数据表,每张数据表都由行和列组成,每一列称为一个字段,每一行称为一个记录。在C#开发环境中简单地查看数据库与表的内容的步骤如下:

(1) 打开工程 。双击“…\04-Soft\02-HCI\01-US-Monitor\AHL-IoT.sln”C#解决方案文件,进入Visual Studio 2013开发环境,并打开US-Monitor.csproj工程。

(2) 利用“解决方案资源管理器”查看程序 。若未出现“解决方案资源管理器”窗口,则可单击“视图”→“解决方案资源管理器”,出现“解决方案资源管理器”窗口,如图4-3所示。

(3) 查看数据库 。可以利用“服务器资源管理器”查看数据库。单击“视图”→“服务器资源管理器”,在弹出的“服务器资源管理器”窗口中右击“数据连接”,在弹出的菜单中单击“添加连接”,出现如图4-4所示的“添加连接”对话框,将“数据源”改为“Microsoft SQL Server 数据库文件”,单击“浏览”按钮,根据工程路径选择打开要查看的数据库文件“AHL-IoT.mdf”后,单击“测试连接”,此时会弹出“测试连接成功”对话框,单击“确定”按钮可退出“测试连接成功”对话框,然后单击“添加连接”对话框下部的“确定”按钮。此时,在“服务器资源管理器”对话框中的“数据连接”下会出现“AHL-IoT.mdf”,这就是我们要查看的数据库。

图4-3 解决方案资源管理器

图4-4 “添加连接”对话框

(4) 查看数据内的表 。操作数据库名字前的小箭头“ ”可查看数据库所包含的表。单击“AHL-IoT.mdf”前的小箭头“ ”,出现“ ”等栏目,再单击“ ”前的小箭头“ ”,即可展开表所含内容,如图4-5所示。

此时可以看到AHL-IoT所包含的3张表的名字分别为Device (设备信息表)、Down(下行数据表)、Up(上行数据表)。

以查看数据表Device为例,右击“Device”,在弹出的菜单中选择“显示表数据”即可显示“Device”的数据。

图4-5 AHL-IoT数据库所包含的表

也可以采用SQL(结构化查询语言)进行查询,步骤如下:右击“Device”,在弹出的菜单中选择“新建查询”,在弹出的对话框中输入“select*from Device”,单击弹出左上角的 按钮,执行SQL语句,即可实现数据的查询。

4.5.2 各数据表的用途

金葫芦框架中的数据库共包含3张表,分别是设备信息表(Device)、上行数据表(Up)和下行数据表(Down)。下面简要阐述各表的基本功能。

1.设备信息表(Device)

设备信息表(Device)存储的是终端设备的配置信息,一个设备对应一条记录,只保存最新的信息,不保存更改的记录,主要记录存储于GEC内Flash存储体中的与设备配置相关的信息。设备信息表中包含的属性及其含义如表4-4所示。

表4-4 设备信息表包含的属性及其含义

2.下行数据表(Down)

下行数据表(Down)存储的是所有下行的数据。本表可存储多种格式的数据,如所有帧格式的数据,通过命令可确定真正有用的字段。该表包含的属性及其含义如表4-5所示。

表4-5 下行数据表包含的属性及其含义

续表

3.上行数据表(Up)

上行数据表(Up)存储的是所有的上行数据。本表也可存储多种格式的数据,例如,所有帧格式的数据,通过命令可确定真正有用的字段。该表结构与下行数据表一致。

4.5.3 操作数据库的基本编程方法

为了方便读者操作数据库,本书给出的模板程序包含了封装好数据库的操作类SQLCommand,通过使用该类可完成大部分的数据库操作。本节以查询Device表为例说明其使用方法。

1.获取数据库连接字符串

在 US-Monitor 程序的 App.config 文件中,AppSettings 域提前存放好了数据库连接字符串。

2.创建数据库操作对象(以表为单位)

connectionString为数据库连接字符串,可参照样例工程进行书写,也可自行搜索资料。

3.对数据库中表的基本操作:增删改查

(1)在数据表中新增一行数据,例如:

sqlDevice.insert(column,value);

(2)删除数据库中一行数据,例如:

sqlDevice.deleteNeed(column,value);

(3)修改数据库中一行数据,例如:

sqlDevice.update(ID,column,value);

(4)查询数据库中所有数据,并将查询结果存入DataTable对象中,例如:

DataTable dt=sqlDevice.select();

至此,完成了查询数据表的操作,对于参数的详细说明及其他方法请参考类的说明文件。 bCWlGpIahWX0Uz4ETzkpv+ydIFYUo+lkN1pGsOdI584qb+FLRTKum92t1pJKWoMl

点击中间区域
呼出菜单
上一章
目录
下一章
×