经过(九)的驱动配置,我们可以正式来学习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网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算
 官方软件产品操作指南 (170)
官方软件产品操作指南 (170)