Qt 使用数据库SQLite、SQL Server
在使用数据库时,需要查看安装的QT中支持的驱动列表。一般可以在QT安装目录中的plugins/sqldrivers文件夹中查看所有的驱动插件文件。
本文重点不在此,故不再细述。
在xxx.pro工程文件中需要添加如下:
QT += sql
连接SQLite数据库:
该数据库为轻量级数据库,使用方便。代码如下:
1 #include <QMessageBox>
2 #include <QSqlDatabase>
3 #include <QSqlQuery>
4 #include <QDebug>
5
6 static bool createConnection()
7 {
8 QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
9 db.setDatabaseName("my.db");
10 if (!db.open()) {
11 QMessageBox::critical(0, "Cannot open database1",
12 "Unable to establish a database connection.", QMessageBox::Cancel);
13 return false;
14 }
15 QSqlQuery query;
16 // 创建登录用户表
17 query.exec("create table user (username varchar primary key, passwd varchar)");
18 query.exec("insert into user values('admin', 'root')");return true;
19 }
编译之后,会在目录下生成一个my.db的数据库文件。数据库中有一个名为user的表。
如果要同时对两个不同的数据库文件进行操作,则:
1 #include <QMessageBox>
2 #include <QSqlDatabase>
3 #include <QSqlQuery>
4
5 static bool createConnection()
6 {
7 // 创建一个数据库连接,使用“connection1”为连接名
8 QSqlDatabase db1 = QSqlDatabase::addDatabase("QSQLITE", "connection1");
9 db1.setDatabaseName("my1.db");
10 if (!db1.open()) {
11 QMessageBox::critical(0, "Cannot open database1",
12 "Unable to establish a database connection.", QMessageBox::Cancel);
13 return false;
14 }
15
16 // 这里要指定连接
17 QSqlQuery query1(db1);
18 query1.exec("create table student (id int primary key, "
19 "name varchar(20))");
20 query1.exec("insert into student values(0, 'LiMing')");
21 query1.exec("insert into student values(1, 'LiuTao')");
22 query1.exec("insert into student values(2, 'WangHong')");
23
24 // 创建另一个数据库连接,要使用不同的连接名,这里是“connection2”
25 QSqlDatabase db2 = QSqlDatabase::addDatabase("QSQLITE", "connection2");
26 db2.setDatabaseName("my2.db");
27 if (!db2.open()) {
28 QMessageBox::critical(0, "Cannot open database1",
29 "Unable to establish a database connection.", QMessageBox::Cancel);
30 return false;
31 }
32
33 // 这里要指定连接
34 QSqlQuery query2(db2);
35 query2.exec("create table student (id int primary key, "
36 "name varchar(20))");
37 query2.exec("insert into student values(10, 'LiQiang')");
38 query2.exec("insert into student values(11, 'MaLiang')");
39 query2.exec("insert into student values(12, 'ZhangBin')");
40 return true;
41 }
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
连接SQL Server数据库:
前提工作:
安装了SQL Server 2008,并在SQL Server中创建了数据库MyDB
Qt通过ODBC连接SQL Server 2008概述:
Qt通过ODBC连接数据库时,使用的数据库名不是直接写入数据库名称,而是DSN名。
DSN名的使用方式有两种:
1、在操作系统中配置DSN;
2、在Qt程序代码中采用DSN连接字符串直接连接ODBC数据库。
下面详细介绍在操作系统中配置DSN方式下连接SQL Server 2008的操作过程
在操作系统中配置DSN
进入管理工具中选择ODBC数据源
然后添加
其中在最后连接哪一个SQLServer服务器,如果已经在SQLServer2008中已经配置完成,则会出现要选择服务器。
这里的登录ID和密码是同在SQLServer2008中配置的一样。
如果已经建立好数据库,这里会出现要待选的数据库。
至此为止,QTDSN已经配置完成。
然后在QT中进行如下配置:
1 QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
2 QString dsn = QString::fromLocal8Bit("QTDSN");
3 db.setHostName("127.0.0.1");
4 db.setDatabaseName(dsn);
5 db.setUserName("sa");
6 db.setPassword("123456");
这样便链接完成
1 #include <QMessageBox>
2 #include <QSqlDatabase>
3 #include <QSqlQuery>
4 #include <QDebug>
5
6 static bool createConnection()
7 {
8
9 QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
10 QString dsn = QString::fromLocal8Bit("QTDSN");
11 db.setHostName("127.0.0.1");
12 db.setDatabaseName(dsn);
13 db.setUserName("sa");
14 db.setPassword("123456");
15 if (!db.open()) {
16 QMessageBox::critical(0, "Cannot open database1",
17 "Unable to establish a database connection.", QMessageBox::Cancel);
18 return false;
19 }
20 QSqlQuery query;
21 // 创建登录用户表
22 query.exec("select * from user");
23 while(query.next()){
24 qDebug()<<query.value(0).toString();
25 qDebug()<<query.value(1).toString();
26 }return true;
27 }
本文福利,莬费领取Qt开发学习资料包、技术视频,内容包括(C++语言基础,Qt编程入门,QT信号与槽机制,QT界面开发-图像绘制,QT网络,QT数据库编程,QT项目实战,QT嵌入式开发,Quick模块,面试题等等)↓↓↓↓↓↓见下面↓↓文章底部点击莬费领取↓↓
相关文章
- qt lineedit_个人总结学生
- qtabwidget设置样式_qt qwidget
- QT配置opencv_qt调用opencv
- GUI开发选择QT的十大理由
- QT编写一个JLINK烧录工具
- C/C++ Qt StringListModel 字符串列表映射组件
- C/C++ Qt TableDelegate 自定义代理组件
- C/C++ Qt QThread 线程组件应用
- C/C++ Qt TreeWidget 嵌套节点操作技巧
- Qt官方示例-数据库浏览器
- Qt实验性项目-Http服务器
- Qt自绘系列-放大镜
- 编程在Linux下学习Qt界面编程(linux下qt界面)
- 解决MySQL在QT中乱码问题(mysqlqt乱码)
- 在Linux系统上使用QT和GDB调试(qtlinuxgdb)
- Linux安装Qt:轻松搞定(linux如何安装qt)
- 通信在Linux下使用Qt实现串口通信(qtlinux串口)
- Linux上Qt的快速安装(linux下载qt)
- 开发Linux下 Qt开发:从入门到精通.(linux下的qt)
- 使用 Qt 连接 MySql (qt使用mysql)
- 简明易懂的Linux下QT安装指南(linux下安装qt教程)
- 使用QT操作MySQL数据库(qt的mysql数据库)
- Mac开发:Qt和Mysql的综合技术(macqtmysql)
- Qt跨平台编译MySQL驱动实践(qt编译mysql驱动)
- 使用Qt实现MySQL数据库连接教程(qt连接mysql数据库)
- QT如何访问MySQL数据库(qt访问mysql数据库)
- Qt实现MySQL数据库操作详解(qt操作mysql数据库)
- SQLite与Redis的比较精彩一瞥(sqlite和redis)
- 使用SQLite和Redis提升系统性能(sqlite redis)
- Redis与Qt实现完美连接(redis连接qt)