QT5.12 +mysql的一段笔记

2020-11-13 21:55:59  阅读 2960 次 评论 0 条

1:pro文件里加上 

QT       += sql

2:建立mysql.h   定义全局变量

#ifndef MYSQL_H
#define MYSQL_H
#include <QWidget>
#include <QtSql/QSql>
#include <QtSql/QSqlError>
#include <QtSql/QSqlDatabase>
#include <QtSql/QSqlQuery>
#include <QtSql/QSqlQueryModel>
#include <QCoreApplication>
#include <QtSql/QSqlError>
#include <QtDebug>


class mySQL: public QWidget
{
    Q_OBJECT

public:
    static QSqlDatabase cn ;  //定义全局变量

private:
};

#endif // MYSQL_H

3:from 里加上 tableWidget    

编译一下

4:widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QDebug>
#include <QMessageBox>

#include <mysql.h>

QSqlDatabase mySQL::cn = QSqlDatabase::addDatabase("QMYSQL");
bool OpenDatabase()
{
     //数据库驱动类型为SQL Server
    mySQL::cn.setHostName("192.168.4.240");      //连接数据库主机名,这里需要注意(若填的为”127.0.0.1“,出现不能连接,则改为localhost)
    mySQL::cn.setPort(3307);                 //连接数据库端口号,与设置一致
    mySQL::cn.setDatabaseName("assets");      //连接数据库名,与设置一致
    mySQL::cn.setUserName("root");          //数据库用户名,与设置一致
    mySQL::cn.setPassword("**********");    //数据库密码,与设置一致
    mySQL::cn.open();
    if(!mySQL::cn.open())                                      //打开数据库
    {
        qDebug()<<mySQL::cn.lastError().text();
        QMessageBox::critical(0, QObject::tr("打开数据库失败!!"), mySQL::cn.lastError().text());
        return false;                                   //打开失败
    }
    else
    {
        qDebug()<<"打开数据库成功!";

    }return true;
}


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    //connect(this,Widget::resize,this,[+=]);
    if(OpenDatabase()){
        //成功执行查询语句
        QSqlQuery query(mySQL::cn); //查询 表并输出,测试能否正常操作数据库
        query.exec("SELECT * FROM  asset_config order by config_name");
        QStringList list1;
        list1.clear();
        list1<<"类型"<<"组"<<"编码"<<"值";
        ui->tableWidget->setColumnCount(list1.size());
        ui->tableWidget->setHorizontalHeaderLabels(list1);

        int row=0;
        ui->tableWidget->setRowCount(20); //暂时设置成20行
        while(query.next())
        {
            ui->tableWidget->setItem(row,0,new QTableWidgetItem(query.value("config_name").toString()));
            ui->tableWidget->setItem(row,1,new QTableWidgetItem(query.value("type_id").toString() ));
            ui->tableWidget->setItem(row,2,new QTableWidgetItem(query.value("type_code").toString()));
            ui->tableWidget->setItem(row,3,new QTableWidgetItem(query.value("type_name").toString() ));
            row++;
        }
    }
}

Widget::~Widget()
{
    delete ui;
}


运行结果:


微信图片_20201113220231.png

本文地址:http://financialos.cn/?id=220
免责声明:本文为原创文章,版权归 jinesc 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?