当前位置: 首页 > news >正文

冷水滩做微信网站谷歌网站推广优化

冷水滩做微信网站,谷歌网站推广优化,网站自动seo,网站用什么格式做目录 前言: 数据库连接 项目文件加上sql 打印查看Qt支持哪些数据库驱动 QMYSQL [static] QSqlDatabase QSqlDatabase::addDatabase(const QString &type, const QString &connectionName QLatin1String(defaultConnection)) 数据库插入 头文件.h 源…

目录

前言:

数据库连接

项目文件加上sql

打印查看Qt支持哪些数据库驱动

QMYSQL

 [static] QSqlDatabase QSqlDatabase::addDatabase(const QString &type, const QString &connectionName = QLatin1String(defaultConnection))

数据库插入

头文件.h

源文件.cpp

现象

使用多个数据库时,起名标识和传参数

注意的点

现象 

SQL语句 

批量插入&odbc风格&占用符号

现象

oracle风格&占位符号&绑定字符不局限顺序

遍历&删除&撤回

现象 

QsqlList 

新建工程

建立本地数据库

插入表&添加内容&设置字段&遍历&打印

 现象

数据库可视化操作

添加数据库到项目工程

model设置模型

指定model使用哪个表&把model设置到tableView并显示数据&把第一个列表改名字

 添加行&提交动作

现象

取消&删除

现象

查找

现象


前言:

我要把你抓走咯

数据库连接

QT5.12连接MySQL_qt 5.12.12 mysql-CSDN博客

下载Navicat 连接MySQL

项目文件加上sql

每次更改完项目文件都建议执行一遍编译不允许,为了让后面可以检测到

打印查看Qt支持哪些数据库驱动

("QSQLITE", "QODBC", "QODBC3", "QPSQL", "QPSQL7") 

QSQLITE:静态数据库(不需要服务器,保存在文件,a.db,类似excel表格),嵌入式常用,C语言开源,提供.h和.c

QODBC,QODBC3:MFC,提供好数据库的接口

QPSQL,QPSQL7:(待补充)

QMYSQL

黑马用的这个,但是我这里没有,那只能去下一个了

QT5.12连接MySQL

Qt安装MYSQL驱动

噢!之前91一个错误原来是因为qt的编译器和mysql的位数对不上,亏我搞了这么就久

mysql的82位,之前编译我用的32位,今天一换64位就得用了

大佬指路:QT连接MySql数据库失败,编译驱动问题,最详细解决办法_

QT连接MySql数据库失败,编译驱动问题,最详细解决办法

ohhhhhhhhhhhhhhhhhh,原来我一直都连接成功了!!但是以后写数据库相关都要用64位的项目配置

等等,黑马打开的那个界面是哪来的

Navicat中MySQL命令列界面操作及基础常用命令_navicat命令列界面怎么运行-CSDN博客

Navicat16安装和激活详细讲解(全网最简单且靠谱)_navicat 16-CSDN博客

原来是Navicat

大悲,Navicat连接不了MYSQL

mysql-8.0.30最新密码重置方法,看这一篇就够了_mysql 8.0忘记初始化密码-CSDN博客

‘mysql‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件_mysql' 不是内部或外部命令,也不是可运行的程序 或批处理文件。-CSDN博客

Mysql应用安装后找不到my.ini文件_mysql8.0没有my.ini-CSDN博客

几经多折,其实是我密码忘了,位数没对上,最后用重装解决百分之80的问题

 [static] QSqlDatabase QSqlDatabase::addDatabase(const QString &type, const QString &connectionName = QLatin1String(defaultConnection))

数据库插入

头文件.h

源文件.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QSqlDatabase>
#include <QDebug>
#include <QMessageBox>
#include <QSqlError>
#include <QSqlQuery>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);//打印Qt支持的数据库驱动qDebug()<<QSqlDatabase::drivers();//添加MYSQl数据库QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL");//连接数据库db.setHostName("127.0.0.1");//数据库服务器ipdb.setUserName("root");//数据库用户名db.setPassword("123456");//密码db.setDatabaseName("info");//使用哪个数据库//打开数据库if( !db.open() )//数据库打开失败{QMessageBox::warning(this,"错误",db.lastError().text());return;}QSqlQuery query;query.exec("create table student(id int primary key auto_increment,name varchar(255),age int,score int);");//create table student(:这行代码开始创建一个新表,表名为 student。//id int primary key auto_increment,:这行定义了一个名为 id 的列,数据类型为整数(int)。primary key 表示这个列是表的主键,用于唯一地标识表中的每一行。auto_increment 属性表示每当向表中插入新行时,这个列的值会自动增加,从而保证每个 id 的唯一性。//name varchar(255),:这行定义了一个名为 name 的列,数据类型为可变长字符串(varchar),最大长度为255个字符。//age int,:这行定义了一个名为 age 的列,数据类型为整数(int),用于存储学生的年龄。//score int);:这行定义了一个名为 score 的列,数据类型为整数(int),用于存储学生的分数。最后的 ); 表示表定义的结束。}Widget::~Widget()
{delete ui;
}

现象

使用多个数据库时,起名标识和传参数

注意的点

如果不加起名标识,就不需要传参数了

现象 

SQL语句 

史上超强最常用SQL语句大全-CSDN博客

批量插入&odbc风格&占用符号

    //批量插入//odbc风格//预处理语句QSqlQuery query;//  ? 相当于 占用符号query.prepare("insert into student(name,age,score) values(?,?,?);");//给字段设置内容 listQVariantList nameList;nameList <<"小黄"<<"小劳"<<"小白";QVariantList ageList;ageList << 11 << 22 << 33;QVariantList scoreList;scoreList << 59 << 69 << 79;//给字段绑定相应的值,按顺序绑定query.addBindValue(nameList);query.addBindValue(ageList);query.addBindValue(scoreList);//执行预处理命令query.execBatch();//批量插入

现象

记得在表格内点击刷新

oracle风格&占位符号&绑定字符不局限顺序

    //oracle风格//占位符号  : 自定义名query.prepare("insert into student(name,age,score) values(:name,:age,:score);");//给字段设置内容 listQVariantList nameList;nameList <<"ad"<<"fs"<<"xcv";QVariantList ageList;ageList << 77 << 88 << 11;QVariantList scoreList;scoreList << 55 << 66 << 41;//给字段绑定,不局限于顺序query.bindValue(":name",nameList);query.bindValue(":score",scoreList);query.bindValue(":age",ageList);//执行预处理命令query.execBatch();//批量插入

遍历&删除&撤回

    query.exec("select * from student where name ='ad'");while( query.next()) //一行一行遍历{//取出当前行的内容qDebug()<< query.value(0).toInt()<< query.value(1).toString()<< query.value("age").toInt()<< query.value("score").toInt();}void Widget::on_ButtonDel_clicked()
{//获取行编辑QString name = ui->lineEdit->text();QString sql = QString("delete from student where name = '%1'").arg(name);//开始一个事务QSqlDatabase ::database().transaction();//获取当前操作的是哪个数据库QSqlQuery query;query.exec(sql);
}void Widget::on_ButtonSure_clicked()
{//确定删除QSqlDatabase ::database().commit();//获取当前操作的是哪个数据库
}void Widget::on_ButtonCtrlZ_clicked()
{//回滚,撤销QSqlDatabase ::database().rollback();//获取当前操作的是哪个数据库
}

现象 

QsqlList 

新建工程

建立本地数据库

txt文件改名字即可

插入表&添加内容&设置字段&遍历&打印

//打印Qt支持的数据库驱动qDebug()<<QSqlDatabase::drivers();//添加QSQLITE数据库QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");//QSqlite不能够自动累加,不可用auto_incnement//设置数据库db.setDatabaseName("../info.db");//打开数据库if( !db.open() )//数据库打开失败{QMessageBox::warning(this,"错误",db.lastError().text());return;}QSqlQuery query;query.exec("create table student(""id int primary key,""name varchar(255),""age int,""score int);");query.prepare("insert into student(name,age,score) values(?,?,?);");//给字段设置内容 listQVariantList nameList;nameList <<"小黄"<<"小劳"<<"小白";QVariantList ageList;ageList << 11 << 22 << 33;QVariantList scoreList;scoreList << 59 << 69 << 79;//给字段绑定相应的值,按顺序绑定query.addBindValue(nameList);query.addBindValue(ageList);query.addBindValue(scoreList);//执行预处理命令query.execBatch();//批量插入//遍历&&打印query.exec("select * from student");while( query.next()) //一行一行遍历{//取出当前行的内容qDebug()<< query.value(0).toInt()<< query.value(1).toString()<< query.value("age").toInt()<< query.value("score").toInt();}

 现象

数据库可视化操作

添加数据库到项目工程

    //打印Qt支持的数据库驱动qDebug()<<QSqlDatabase::drivers();//添加MYSQl数据库QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//连接数据库db.setHostName("127.0.0.1");//数据库服务器ipdb.setUserName("root");//数据库用户名db.setPassword("123456");//密码db.setDatabaseName("info");//使用哪个数据库//打开数据库if( !db.open() )//数据库打开失败{QMessageBox::warning(this,"错误",db.lastError().text());return;}

model设置模型

#include <QSqlTableModel>

QSqlTableModel *model;

指定model使用哪个表&把model设置到tableView并显示数据&把第一个列表改名字

    //设置模型model = new QSqlTableModel (this);model->setTable("student");//指定使用哪个表//把model设置viewui->tableView->setModel(model);//显示model里的数据model->select();model->setHeaderData(0,Qt::Horizontal,"学号");

 添加行&提交动作

void Widget::on_ButtonAdd_clicked()
{//添加空记录QSqlRecord record= model->record();//获取空记录//获取行号int row =model->rowCount();model->insertRecord(row,record);}void Widget::on_ButtonSure_clicked()
{model->submitAll();//提交动作
}

现象

取消&删除

void Widget::on_ButtonCanadian_clicked()
{model->revertAll();//取消所有动作model->submitAll();//提交动作
}void Widget::on_ButtonDel_clicked()
{//获取选择的模型QItemSelectionModel*sModel=ui->tableView->selectionModel();//取出模型中的索引QModelIndexList list=sModel->selectedRows();//删除所有选中的行for(int i =0;i<list.size();i++){model->removeRow(list.at(i).row());}
}

现象

查找

void Widget::on_ButtonFinal_clicked()
{//获取内容QString name=ui->lineEdit->text();QString str=QString("name ='%1'").arg(name);model->setFilter(str);model->select();
}

现象

http://www.ds6.com.cn/news/61836.html

相关文章:

  • 找网络公司做网站需要注意什么百度端口开户推广
  • 网站建设你懂的友情链接地址
  • axure网站做多宽集合竞价口诀背熟6句
  • 做网站可行性分析seo教程seo入门讲解
  • 贵阳网站制作免费网址缩短
  • 从哪里下载wordpress需要优化的地方
  • 重庆梁平网站建设公司友情链接免费发布平台
  • 灯哥解析 wordpress标题优化怎样选关键词
  • 宁波建设局网站首页微信软文案例
  • 杭州pc网站开发公司有哪些公司企业网站制作
  • python版 wordpress百度seo关键词优化
  • 网站建设困难吗行业网站有哪些平台
  • 建设银行企业官方网站windows优化大师免费
  • 常德网站建设培训机构2021年搜索引擎排名
  • o2o网站建设咨询做网络推广为什么会被抓
  • 网站如何开通微信支付接口软文广告怎么写
  • 网站做图片的大小安徽疫情最新情况
  • 网站建设公司上海做网站公司哪家好百度推广广告收费标准
  • wordpress分享文章插件一键优化下载
  • 网站备案的域名加不加www百度快速收录开通
  • dhl做运单的网站合肥搜索引擎推广
  • 合肥城乡建设委员会的网站资源猫
  • 做网站公司哪家比较好销售渠道都有哪些
  • qq邮箱登陆 com登录网站的推广优化
  • 扬州鼎盛开发建设有限公司网站网络培训机构
  • 网站内容改版营销型网站建设ppt
  • 成华区建设局门户网站企业管理软件管理系统
  • 杭州网站建设服务公司流量主广告点击自助平台
  • 拖拽做网站南宁seo标准
  • 深圳营销型网站建设服务网络服务有哪些