在介绍QT与数据的链接问题上,我在这里就不介绍关于QT环境与mysql、sqlite3环境的安装步骤了,以下的所有的操作都是建立在你已经安装了所有环境的基础上的。好的,那我们就具体来看一看QT环境中怎么与数据进行链接

一、QT链接sqlite3:

  QT链接sqlite3比较简单,比如你在你的计算机上已经创建了一个叫users的数据库,这时你需要在QT创建一个项目,在进行数据库的链接之前需要在工程文件(也就是你的.pro文件)中添加

QT   +=    sql

他表示在QT中增加对数据的支持,接下来在项目中增加如下代码:

     db = QSqlDatabase::addDatabase ("QSQLITE");
db.setDatabaseName ("users");
if(!db.open ()){
qDebug() << db.lastError ().text ();
}else{
qDebug() << "open database sucessful";
}

当然这边的db是声明在头文件的一个QSqlDatabase的一个类型,这样如果你按上边的写法去做的话,你会发现,你打开数据是100%成功,因为,在打开数据的时候,如果没有他会在你的项目的构建文件中默认创建一个为空的users的数据库文件,如下图:

所以你必须要将操作的数据库文件放到该目录下就可以了。。。

二、QT链接mysql数据库

  因为mysql数据库的操作是无法将数据库文件放到构建目录下的,所以他和sqlite3链接QT有些许的不同,QT链接mysql的的代码为:

     db = QSqlDatabase::addDatabase ("QMYSQL");  //mysql的数据库驱动
db.setUserName ("root"); //设置操作数据库用户名
db.setPassword (""); //用户密码
db.setHostName ("127.0.0.1"); //设置主机名,我们这边测试使用本机地址
db.setDatabaseName ("wyf"); //设置操作的数据库名字
db.setPort (); //设置端口号(一般默认为3306,我进行了手动的更改)
if(!db.open()){
qDebug() << db.lastError ().text ();
}else{
qDebug() << "open database sucessful";
}

  你会发现链接不上mysql数据库,会有如下的提示:

QSqlDatabase: QMYSQL driver not loaded
QSqlDatabase: available drivers: QSQLITE QMYSQL QMYSQL3 QODBC QODBC3 QPSQL QPSQL7
"Driver not loaded Driver not loaded"

  这时你需要把mysql的安装路径,找到mysql的驱动程序libmysql.dll

将他拷贝到你的项目中的可执行文件的目录下:

接下来,再次运行程序,发现已经可以链接上了。。。

最新文章

  1. 对一致性Hash算法,Java代码实现的深入研究
  2. 一个语句创建Oracle所有表的序列
  3. h.Connector的SSL属性实现
  4. Yii2 捕获错误日志
  5. 第一个jave程序-helloworld
  6. 在IDEA上用python来连接集群上的hive
  7. 在Windows下编译OpenSSL(VS2005和VC6)
  8. JAVA必备——Struts
  9. Java BigDecimal Class
  10. linux 更改用户的默认shell
  11. 关于springboot的定时器配置
  12. 【转载】IIS出现“HTTP 错误 500.0,C:\php\php-cgi.exe - FastCGI 进程意外退出”解决方法
  13. 阿里云三台CentOS7.2配置安装CDH5.12
  14. Thread的中断机制(interrupt)
  15. mongodb最大连接数、最大连接数修改
  16. C++的虚函数试题,常考!!
  17. python中filter(),map()和reduce()的用法及区别
  18. [转]连连看游戏 C#
  19. c语言重载(overriding in C)或函数不定参数个数
  20. SQL入门教程

热门文章

  1. [HDU 2102] A计划(搜索题,典型dfs or bfs)
  2. JavaScript的连续赋值的思考
  3. 3301: [USACO2011 Feb] Cow Line
  4. Vuex给我们的.vue文件结构带来了这些变化
  5. 如何使用Vue2做服务端渲染
  6. redux三个基本原则
  7. 读书笔记 effective c++ Item 34 区分接口继承和实现继承
  8. (11)连个工具类之间的比较4.Collections与Arrays
  9. Java线程池使用和分析(一)
  10. JS清除DIV的选中状态