数据库学习_QT+MYSQL
Posted Leslie X徐
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据库学习_QT+MYSQL相关的知识,希望对你有一定的参考价值。
QT+sql 链接
sql链接和操作
完整的一个QT+SQL操作步骤:
1. 输入登陆信息进行登陆
2. 使用QSqlQuery进行操作
3. 准备执行指令
4. 执行指令
5. 获取结果
".pro"加入:
QT += sql
main文件:
#include "widget.h"
#include <QApplication>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
#include <QDebug>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
//登陆
QSqlDatabase db = QSqlDatabase::addDatabase("Qmysql");
db.setPassword("xwh1995");
db.setDatabaseName("mysqldata");
if(db.open()==false){
qDebug() << db.lastError().text();
}else {
qDebug() << "open success";
}
//执行指令:select * from tb_stu;
//1.准备指令
QSqlQuery query;
query.prepare("select * from tb_stu;");
//2.执行指令
if(query.exec()==false){
qDebug() << db.lastError().text();
}else {
//3.获取结果
//next为每下一行,value(0)为行首列
while (query.next()) {
int id = query.value(0).toInt();
QString name = query.value(1).toString();
qDebug() << id << ' ' << name;
}
}
return a.exec();
}
加上界面显示的示例
widget.h:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlError>
#include <QtSql/QSqlQuery>
#include <QDebug>
#include <QListWidgetItem>
namespace Ui {
class Widget;
}
class Widget : public QWidget
{
Q_OBJECT
public:
explicit Widget(QWidget *parent = nullptr);
~Widget();
private slots:
void on_btn_log_clicked();
void on_btn_show_clicked();
void on_exit_clicked();
void on_btn_sort_clicked();
private:
Ui::Widget *ui;
QSqlDatabase db;
QListWidgetItem* aItem;
};
#endif // WIDGET_H
使用ListWidget输出dataBase的数据
widget.cpp:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) :
QWidget(parent),
ui(new Ui::Widget),
aItem(nullptr)
{
ui->setupUi(this);
db = QSqlDatabase::addDatabase("QMYSQL");
}
Widget::~Widget()
{
delete ui;
}
void Widget::on_btn_log_clicked()
{
db.setPassword("xwh1995");
db.setDatabaseName("mysqldata");
if(db.open()==false){
qDebug() << db.lastError().text();
}else {
qDebug() << "open success";
}
}
void Widget::on_btn_show_clicked()
{
ui->listWidget->clear();
aItem = new QListWidgetItem("id\\tname\\tsex\\tscore");
ui->listWidget->addItem(aItem);
//执行指令:select * from tb_stu;
//1.准备指令
QSqlQuery query;
query.prepare("select * from tb_stu;");
//2.执行指令
if(query.exec()==false){
qDebug() << db.lastError().text();
}else {
//3.获取结果
//next为每下一行,value(0)为行首列数据
while (query.next()) {
QString info = query.value(0).toString()
+ "\\t" + query.value(1).toString()
+ "\\t" + query.value(2).toString()
+ "\\t" + query.value(3).toString();
qDebug() << info;
aItem = new QListWidgetItem(info);
ui->listWidget->addItem(aItem);
}
}
}
void Widget::on_btn_sort_clicked()
{
ui->listWidget->clear();
aItem = new QListWidgetItem("id\\tname\\tsex\\tscore");
ui->listWidget->addItem(aItem);
//执行指令:select * from tb_stu order by degree desc;
//1.准备指令
QSqlQuery query1;
query1.prepare("select * from tb_stu order by degree desc;");
//2.执行指令
if(query1.exec()==false){
qDebug() << db.lastError().text();
}else {
//3.获取结果
//next为每下一行,value(0)为行首列数据
while (query1.next()) {
QString info1 = query1.value(0).toString()
+ "\\t" + query1.value(1).toString()
+ "\\t" + query1.value(2).toString()
+ "\\t" + query1.value(3).toString();
qDebug() << info1;
aItem = new QListWidgetItem(info1);
ui->listWidget->addItem(aItem);
}
}
}
void Widget::on_exit_clicked()
{
db.close();
this->close();
}
以上是关于数据库学习_QT+MYSQL的主要内容,如果未能解决你的问题,请参考以下文章
Qt (Creator) 与 WinSocks (ws2_32)
26.Qt Quick QML-RotationAnimationPathAnimationSmoothedAnimationBehaviorPauseAnimationSequential(代码片段