QSqlDatabase数据库
#include <QSqlDatabase>
#include <QtDebug>
#include <QSqlQuery>
#include <QSqlError>
#include <QSqlRecord>
//创建数据库
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "sqlite1");
db.setHostName("acidalia");
db.setDatabaseName("customdb");
db.setUserName("root");
db.setPassword("123456");
if( !db.open())
{
qDebug() << "db.open failed.";
}
//创建表
db = QSqlDatabase::database("sqlite1"); //建立数据库连接
QSqlQuery query(db);
bool success = query.exec("create table automobil(id int, name varchar)");
if(success)
{
qDebug() << QObject::tr("create table success.");
}
else
{
qDebug() << QObject::tr("create table failed.");
}
//插入记录
for(int i = 0; i < 10; i++)
{
query.prepare("INSERT INTO automobil (id, name) "
"VALUES (:id, :name)");
query.bindValue(":id", i);
query.bindValue(":name", "furong");
if(!query.exec())
{
QSqlError lastError = query.lastError();
qDebug() << lastError.driverText() << QString(QObject::tr("INSERT failed."));
}
}
//查询记录
query.exec("select * from automobil where id = '" + id + "'");
QSqlRecord rec = query.record();
qDebug() << QObject::tr("automobil table count:" ) << rec.count();
while(query.next())
{
for(int i = 0; i < rec.count(); i++)
qDebug() << query.value(i);
}
//更新记录
query.prepare(QString("update automobil set name = \"quange\",name = '" + name + "' where id = %1").arg(9));
if(!query.exec())
{
QSqlError lastError = query.lastError();
qDebug() << lastError.driverText() << QString(QObject::tr("update failed."));
}
//删除记录
query.prepare(QString("delete from automobil where id = %1").arg(2));
if(!query.exec())
{
qDebug() << "delete failed.";
}
出现如下错误:
error: QSqlDatabase: No such file or directory 错误
解决办法:.pro工程文件中添加
QT += sql
QSqlDatabase数据库的更多相关文章
- 基于Qt5.5.0的sql数据库、SDK_tts文本语音朗读的CET四六级单词背诵系统软件的编写V1.0
作者:小波 QQ:463431476 请关注我的博客园:http://www.cnblogs.com/xiaobo-Linux/ 我的第二款软件:CET四六级单词背诵软件.基于QT5.5.0.sql数 ...
- Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表
Qt5.5.0使用mysql编写小软件源码讲解---顾客信息登记表 一个个人觉得比较简单小巧的软件. 下面就如何编写如何发布打包来介绍一下吧! 先下载mysql的库文件链接:http://files. ...
- 基于Qt5.5.0的sql,C++备忘录软件的编写
我的第一个软件. 基于Qt5.5.0的 sql ,C++备忘录软件version1.0的编写 我用的Qt版本是5.5.0免配置编译器的版本,这里附上我使用的软件下载地址:http://download ...
- SQL in Qt (一)
Connecting to Databases To access a database with QSqlQuery or QSqlQueryModel, create and open one o ...
- JSP应用开发 -------- 电纸书(未完待续)
http://www.educity.cn/jiaocheng/j9415.html JSP程序员常用的技术 第1章 JSP及其相关技术导航 [本章专家知识导学] JSP是一种编程语言,也是一种动 ...
- Qt 多线程与数据库操作需要注意的几点问题(QSqlDatabase对象只能在当前线程里使用)
彻底抛弃MFC, 全面应用Qt 已经不少时间了.除了自己看书按步就班做了十几个验证性的应用,还正式做了3个比较大的行业应用,总体感觉很好.Native C++ 下, Qt 基本是我用过的最简便的界面库 ...
- qt数据库多线程问题的解决(QSqlDatabase只能在创建它的线程中使用)
Qt数据库由QSqlDatabase::addDatabase()生成的QSqlDatabase只能在创建它的线程中使用, 在多线程中共用连接或者在另外一个线程中创建query都是不支持的几乎国内没有 ...
- Qt实用技巧:使用QTableView、QSqlTableMode与QSqlDatabase对数据库数据进行操作
本文章博客地址:http://blog.csdn.net/qq21497936/article/details/78615800 Qt实用技巧:使用QTableView.QSqlTableMode与Q ...
- Qt5 开发 iOS 应用之访问 SQLite 数据库
开发环境: macOS 10.12.1 Xcode 8.1 Qt 5.8 iPhone 6S+iOS 10.1.1 源代码: 我在 Qt 程序里指定了数据库的名称来创建数据库,在 Win10.An ...
随机推荐
- 重启WMS服务
一.重启API服务 查看进程ps ef|grep java 进入目录 cd /usr/local/tomcat-api/bin ./shutdown.sh ps –ef|grep 查看服务是否真的停止 ...
- SQLite带参数处理方法
/// <summary> /// 执行语法[新增 修改 删除] /// </summary> /// <param name="sqlText"&g ...
- matlab基本函数 randn,rand,orth
一起来学演化计算-matlab基本函数randn, rand, orth 觉得有用的话,欢迎一起讨论相互学习~Follow Me randn X = randn 随机从正态分布中选一个数作为结果 X ...
- layui select渲染获取选中的option
关键代码如下: form.on('select(groupCode)', function(data){ console.log($(data.elem).find("option:sele ...
- iOS点击按钮第二次不能旋转View
原因: 用CGAffineTransformMakeRotation,每次旋转都要在之前最后的角度基础之上再转才有效果. - (void)clickAction: (UIButton *)button ...
- 利用ldirectord实现lvs后端realserver健康状态检查
ldirectord用来实现LVS负载均衡资源在主.备节点间的故障转移.在首次启动时,ldirectord可以自动创建IPVS表.此外,它还可以监控各RealServer的运行状态,一旦发现某Real ...
- SpringBoot里自定义banner
国外有一个专门用来生成banner的网址:http://patorjk.com/software/taag ,打开这个网址,生成你想要的字儿. 生成时,我们可以选择自己喜欢的字体等信息. 完成后,选择 ...
- rdkafka swoole
1.yum install php-devel php-pear 2. wget http://pear.php.net/go-pear.phar 3.PHP go-pear.phar 4.cp /r ...
- jquery根据html()的内容来选择
<ul><li>First</li><li>http://www.hfxskyyj.com/</li></ul> 如上,如何选中 ...
- python 并发的开端
目录 网络并发 进程的基础 2.操作系统 操作系统的发展史 多道技术 第二代 1955~1965 磁带存储--批处理系统 第三代集成电路,多道程序系统(1955~1965) 进程的理论(重点) 2.操 ...