经过(九)的驱动配置,我们可以正式来学习MySQL了。 1.对数据库进行访问,添加表格 .pro文件 widget.cpp文件 效果: 2.插入数据库操作(对应上面代码) 1)单条插入 效果: 2)批量插入(两种方法a和b,个人推荐第二种) a.需要给字符串顺序绑定值 效果:(一定要一一对应了,顺序排列) b.不需要给字符串顺序绑定 效果: 3.对数据库信息删除操作(做一个界面,,打包后就很方便对数据库操作) 设计个ui: 代码: 效果: 按下撤销按钮则数据不删除,如果发现数据删除了,无法回滚,可能是数据库的自动提交没有关闭,这需要在数据库中设置。 4.更新数据 数据库中原数据: 更新后: 5.查询数据 1)遍历全部显示 效果: 2)遍历,选择显示 效果:QT += core gui sql
#include "widget.h" #include "ui_widget.h" #include<QSqlDatabase>//Mysql #include<QDebug>//打印 #include<QMessageBox>//模态对话框的头文件 #include<QSqlError>//lasterror用到的头文件 #include<QSqlQuery>//新建表用到的头文件 Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); //打印Qt支持的数据库驱动 qDebug() << QSqlDatabase::drivers(); /*("QSQLITE"静态数据库,不需要服务器,和文件一样,a.db , "QMYSQL", "QMYSQL3", "QODBC", "QODBC3", "QPSQL", "QPSQL7")*/ QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//添加Mysql数据库 db.setHostName("0.0.0.0");//数据库服务器IP db.setUserName("eagle");//数据库用户名 db.setPassword("123456");//数据库密码 db.setDatabaseName("checksysterm");//使用哪个数据库 //打开数据库 if(!db.open()) { QMessageBox::warning(this,"错误",db.lastError().text()); return; } QSqlQuery query; query.exec("create table test(id int primary key auto_increment,state varchar(255),time int)"); } Widget::~Widget() { delete ui; }
QSqlQuery query; query.exec("insert into test(id, state, time) values(1, 'open', 2)");
//预处理语句 query.prepare("insert into test(state, time) values(?, ?)");//?占位符 //给字段设置内容 list QVariantList stateList; stateList<<"open"<<"close"<<"close"; QVariantList timeList; timeList<<5<<8<<10; //给字段绑定相应的值,顺序绑定 query.addBindValue(stateList); query.addBindValue(timeList); //执行预处理命令 query.execBatch();
//占位符::+自定义名字 query.prepare("insert into test(state, time) values(:state, :time)");//?占位符 //给字段设置内容 list QVariantList stateList; stateList<<"open"<<"open"<<"close"; QVariantList timeList; timeList<<1<<2<<3; //给字段绑定相应的值,顺序绑定 query.bindValue(":state",stateList); query.bindValue(":time",timeList); //执行预处理命令 query.execBatch();
//对应删除按钮 void Widget::on_buttonDel_clicked() { //获取编辑内容 QString state = ui->lineEdit->text(); QString sql=QString("delete from test where state ='%1'").arg(state); //开启一个事务 QSqlDatabase::database().transaction(); QSqlQuery query; query.exec(sql); } //对应保存按钮 void Widget::on_buttonSave_clicked() { //确定删除操作 QSqlDatabase::database().commit(); } //对应撤销按钮 void Widget::on_buttonCancel_clicked() { //回滚 QSqlDatabase::database().rollback(); } //对应关闭按钮 void Widget::on_buttonclose_clicked() { this->close(); }
a.确定删除query.exec("update test set state = 'close' where id= 1");
query.exec("select * from test"); while(query.next())//遍历数据库 { //取出当前行 qDebug()<<query.value(0).toInt() <<query.value(1).toString()//通过列数 <<query.value("time").toInt();//通过字段 }
query.exec("select * from test where state = 'open'");//选择显示 while(query.next())//遍历数据库 { //取出当前行 qDebug()<<query.value(0).toInt() <<query.value(1).toString()//通过列数 <<query.value("time").toInt();//通过字段 }
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算