qsql 关联_(十八)链接数据库,QSqlTableModel
#include "mysql.h"#include"ui_mysql.h"#include#include#include#include#includeMySql::MySql(QWidget*parent) :
QWidget(parent),
ui(newUi::MySql)
{
ui->setupUi(this);//添加一个mysql数据库
qDebug() <<:drivers>
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//设置数据库
db.setHostName("127.0.0.1"); //主机IP
db.setUserName("root"); //登录mysql数据库的用户名
db.setPassword("123456"); //登录密码
db.setDatabaseName("books"); //连接的数据库名//打开数据库
if(db.open() == false)
{
QMessageBox::warning(this, "warning", db.lastError().text());
}//增删查改 ...//添加一条记录
QSqlQuery query;
QString sql= "insert into app_authors(name,age) values('vincent',100)";
query.exec(sql);//预处理//? -- 通配符, odbc风格的通配符
query.prepare("insert into app_authors(name,age) values(?,?)");//添加绑定数据
QVariantList nameList;
nameList<< "aa" << "bb" << "cc";
query.addBindValue(nameList);
QVariantList ageList;
ageList<< 11 << 54 << 88;
query.addBindValue(ageList);//执行批处理
query.execBatch();//oracle 风格的通配符//定义方式: :+自定义的名字
query.prepare("insert into app_authors(name, age) values(:name, :age)");
QVariantList ageList;
ageList<< 111 << 52 << 82;
query.bindValue(":age",ageList);
QVariantList nameList;
nameList<< "hh" << "ff" << "gg";
query.bindValue(":name",nameList);
query.execBatch();//数据查询
query.exec("select name, age from app_authors");while(query.next()) { //遍历每一条记录
qDebug() << query.value(0).toString().toUtf8().data() // //0 -- 第一个字段的索引
<< query.value(1).toInt()<< query.value("name").toString().toUtf8().data();
}//1. 实例化model
model = new QSqlTableModel(this);//2. 将模型设置到视图中
ui->tableView->setModel(model);//3. 给model设置数据库表 -- 前提条件: 数据库已经打开了
model->setTable("app_authors");//4. 查询表
model->select();//5. 设置表头
model->setHeaderData(0, Qt::Horizontal, "编号");
model->setHeaderData(1,Qt::Horizontal,"姓名");
model->setHeaderData(2,Qt::Horizontal,"年龄");
model->setEditStrategy(QSqlTableModel::OnManualSubmit);
}
MySql::~MySql()
{deleteui;
}voidMySql::on_submit_clicked()
{
model->submitAll();
}voidMySql::on_revert_clicked()
{
model->revertAll(); //撤销步骤
model->submitAll(); //提交步骤 -- 更新数据模型 model->select();
}voidMySql::on_search_clicked()
{
QString name= ui->lineEdit->text();//slect * from aa where name = 'xiaoming';//设置过滤条件
QString sql = QString("name='%1'").arg(name);
model->setFilter(sql);//重新查询
model->select();
}
qsql 关联_(十八)链接数据库,QSqlTableModel相关推荐
- qsql 关联_第26篇 数据库(六)SQL关系表格模型QSqlRelationalTableModel
第26篇 数据库(六)SQL关系表格模型QSqlRelationalTableModel 导语 QSqlRelationalTableModel继承自QSqlTableModel,并且对其进行了扩展, ...
- MySQL二十八规范数据库设计
MySQL二十八:规范数据库设计 糟糕的数据库设计: ●数据冗余,浪费空间 ●数据库插入和删除都会麻烦.异常[ 屏蔽使用物理外键] ●程序的性能差 良好的数据库设计: ●节省内存空间 ●保证数据库的完 ...
- 微信小程序开发之十八 —— 云数据库入门
文章目录 学习前后 云数据库的基础知识 数据库权限限制 简易权限配置 安全规则 数据库查询 查询指令command 条件查询法一:Collection.where 条件查询法二:Collection. ...
- xadmin与mysql数据库_十八、Django3.0学习之引入xadmin
一.将xadmin导入Django工程中 1.1 xadmin下载地址: https://github.com/sshwsfc/xadmin/tree/django2 或者: 链接:https://p ...
- jmeter连接mysql数据库驱动_十八、JMeter实战-JDBC连接MySQL数据库
前言 连接数据库进行测试在工作中会比较常用,首先可以读取数据库的数据进行参数化.关联等,批量添加测试数据以及清理数据,还可以直接对SQL语句进行压测. 一.基本介绍 1. 首先第一步要导入mysql驱 ...
- qsql 关联_怎样在Qt下连接读写sqlite数据库
我们接着来写查询按钮的代码,输入以下代码: QSqlDatabase mydb=QSqlDatabase::addDatabase("QSQLITE","rconntos ...
- sql server 链接服务器 改访问接口_跨服务器链接数据库?其实很简单!(上)
今天给大家来分享一下跨服务器操作数据库,还是以SQL Server的管理工具(SSMS)为平台进行操作. 什么是跨服务器操作? 跨服务器操作就是可以在本地连接到远程服务器上的数据库,可以在对方的数据库 ...
- Django笔记二十八之数据库查询优化汇总
这一篇笔记将从以下几个方面来介绍 Django 在查询过程中的一些优化操作,有一些是介绍如何获取 Django 查询转化的 sql 语句,有一些是理解 QuerySet 是如何获取数据的. 以下是本篇 ...
- 大数据WEB阶段(十八)数据库事务
数据库事务 一.概述 事务的概念 事务是指逻辑上的一组操作 , 组成这组操作的各个单元 , 要么全部成功 , 要么全部失败 . 如:银行转账.. 转账核心操作其实就是两条sql ,两条都执行成功才算成 ...
最新文章
- 1.无重复字符的最长子串
- 可拖动的进度条_TIM iOS版重大更新:支持语音进度条拖动和暂停
- 24.Creating Customer Groups
- 无共享模式的数据架构
- How to create a DXL attribute using a DXL script
- JZOJ6734. 【2020.06.18省选模拟】航行
- 公开说说别人看不到_空间设置了权限说说所有人可见
- 软考中级嵌入式系统设计师备考攻略
- Using insecure protocols with repositories(已解决)
- Take-Two同意斥资127亿美元收购Zynga,或成史上最大游戏并购交易
- 企业邮箱邮件怎么撤回,邮件撤回怎么用?
- html实训QQ音乐官网首页制作
- 直角三角形面积Java_用java编写输出直角三角型、倒直角三角形
- A40I构建编译应用程序的SDK环境
- 今天给大家分享用scratch制作最难通关管道小游戏!
- Unity(游戏)中五种数据存储的方法
- Makefile文件
- 【目标跟踪】|单目标跟踪指标
- 服务器cpu性能如何测试,CPU性能测试(1)_服务器评测与技术-中关村在线
- 福昕阅读器(Foxit福昕阅读器(Foxit Reader) 3.0 Build 1506 注册方法
热门文章
- 矩形内接任意多边形抠图(可以羽化边缘)
- Git tag 打标签
- python相似图片聚类分类
- OpenCV Mat类详解
- Linux内核ipsec密码库,关于2.6.18 ipsec内核支持(NETKEY)的问题
- java开源库生成折线图_Android HelloChart开源库图表之折线图的实例代码
- java怎么读取word某一页内容_Word页码设置的3点技巧,提高排版效率,减少不必要烦恼...
- admui3字体无法删除_被微信好友删除、拉黑还不知?这3个方法可以自查,看完涨知识了...
- html div中怎么引入另一个html文件
- 基于wayland的linux桌面,揭开Wayland的面纱(二):Wayland应运而生