笔记三、基于Labview的BS系统web的项目示例——数据库读写功能

目标:
在上次笔记的基础上,添加数据库的读写功能
浏览器端通过:写入数据按钮,将数据传入后端,后端接收数据并写入数据库
浏览器端通过:读取数据按钮,传输数据ID,后端将根据数据ID读取数据库的数据,并传回浏览器端,显示在浏览器上

数据库使用的是MySQL,数据库的驱动使用的是ODBC驱动,所以需要安装MySQL的ODBC驱动,以下是准备工作:
1、 在MySQL数据创建数据库,命名为lvtest
2、 添加一个表,命名为student
3、 表的三个字段为id,name,age
数据库准备工作完成
接下来准备数据库的驱动工作:
打开控制面板——管理工具——ODBC Data Sources(32-bit),在用户DSN和系统DSN分别将刚才新建的数据库lvtest添加到列表,如下图所示
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能
至此数据库驱动准备工作完成。

接下来准备编写和更改Labview的程序,先拷贝一份上一笔记的代码,并重新命名为test3
添加一个库,命名为lib,在lib下面新建一个虚拟文件夹,命名为Dao,里面存储的是数据库的操作功能文件
新建两个VI文件,一个命名为:dao_cud.vi(主要是数据库的增、改、删功能),一个是dao_r.vi(主要是数据库的查询功能)
dao_cud.vi按照如下设计:
前面板如下图:两个输入一个输出,其中输入db_name是数据的名称;input是输入的SQL语句;输出为错误信息输出,注意将输入和输出Public化,如右上角
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能
程序框图如下连线,其中labview的数据库驱动使用的是LabSQL,需要的请自行下载,程序框图中,条件结构为真时,什么都不做,仅给error错误输出进行赋值。
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能

dao_r.vi按照如下设计:
前面板如下图:两个输入两个输出,其中输入db_name是数据的名称;input是输入的SQL语句;error输出为错误信息输出,Data输出为查询到的结果,结果为数组形式,注意将输入和输出Public化,如右上角
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能
程序框图如下连线,和上一框图区别不大,程序框图中,条件结构为真时,什么都不做,仅给error错误输出进行赋值。
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能

经过上述步骤操作后,数据库的Dao操作功能基本完成,接下来在上一笔记基础上进行我们的代码更改

首先进行testw.vi的更改
由于testw的功能是在数据库插入数据,所以需要调用dao_cud.vi,在testw的程序框图上,右键——函数——选择VI…对话框中找到lib------Dao------dao_cud.vi,添加到本vi的程序框图,如下图示(图标我做了修改,这个不影响功能,相关资料可以上网查询,此处不是我们关注的,暂时不做说明)
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能
可以看到左边有两个输入,右边一个输出,鼠标放到相应的输入输出,会有提示
接下来因为insert语句包含变量等信息,所以需要连接字符串,添加一个连接字符串的控件
刚开始添加的连接字符串控件只有两个输入,将鼠标移动到该控件,可以看到该控件中间边缘有两个小黑点,用鼠标拖动小黑点,可以增加输入端,当然也可以减少输入端,我们将输入端设定为七个,并按照下图将insert语句完善;同时在db_name端创建一个常量,并更改为lvtest,最终如下图所示:
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能

接下来更改testr.vi
这里的功能设定是通过id查询name和age,因此将id更改为输入控件,接着添加连接字符串控件,完善SQL查询语句,也需要增加db_name的常量lvtest,因为这次是查询语句,所有有返回内容,返回的是一个二维数组,并且我们通过SQL语句知道返回的第一个是name,第二个是age,所有通过索引数据,将第一个数值取出来赋值给name,第二个数值取出来赋值给age,最终如下图所示:
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能

接下来需要调整,浏览器的前端html的内容:
写入数据部分不做更改,主要是读取数据部分做了以下更改:
需要通过id发给服务端,服务端根据id去查询数据库,并返回数据,因此主要做了以下更改:
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能
最终的目录结构如下:
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能
演示效果如下:
写入数据如下:
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能
查看数据库,该条内容已经增加
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能

接下来我们查询一下id为3的数据
在第一个id框输入3,点击按钮:读取数据,如下图
查询前:
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能
查询后返回的数据如下:
笔记三、基于Labview的BS系统web的项目示例——数据库读写功能