Bootstrap

QT 通过ODBC连接数据库的好方法:

效果图:




PWD使用自己的,我的这是自己的,所以你用不了。
以下是格式。

    // 1. 设置数据库连接
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");// 建立和QMYSQL数据库的连接
    // 设置数据库连接名称(DSN),或者你也可以使用连接字符串来指定服务器和数据库
    db.setDatabaseName(""
                       "Driver={MySQL ODBC 8.0 Unicode Driver};"
                       "Server=mysql.sqlpub.com:3306;"
                       "Database=huangjin;"
                       "UID=laocooon;"
                       "PWD=fc12f7aa5215e8e0a;"
                       );

    // 1. 设置数据库连接
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");// 建立和QMYSQL数据库的连接
    // 设置数据库连接名称(DSN),或者你也可以使用连接字符串来指定服务器和数据库
    db.setDatabaseName(""
                       "Driver={MySQL ODBC 8.0 Unicode Driver};"
                       "Server=mysql.sqlpub.com:3306;"
                       "Database=huangjin;"
                       "UID=laocooon;"
                       "PWD=fc12f7aa5215e8e0a;"
                       );
#include "mainwindow.h"

#include <QApplication>
#include <QWidget>
#include <QTableView>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlTableModel>
#include <QVBoxLayout>
#include <QMessageBox>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    // 创建主窗体
    QWidget window;

    // 1. 设置数据库连接
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");// 建立和QMYSQL数据库的连接
    // 设置数据库连接名称(DSN),或者你也可以使用连接字符串来指定服务器和数据库
    db.setDatabaseName(""
                       "Driver={MySQL ODBC 8.0 Unicode Driver};"
                       "Server=mysql.sqlpub.com:3306;"
                       "Database=huangjin;"
                       "UID=laocooon;"
                       "PWD=fc12f7aa5215e8e0a;"
                       );

    if (!db.open()) {
        QMessageBox::critical(&window, "数据库连接失败", "无法连接到数据库!");
        return -1;
    }

    // 2. 使用 QSqlTableModel 来查询表数据
    QSqlTableModel model;
    model.setTable("stu");
    model.setEditStrategy(QSqlTableModel::OnManualSubmit);

    if (!model.select()) {
        QMessageBox::critical(&window, "查询失败", "无法加载数据!");
        return -1;
    }

    // 3. 创建 QTableView 并将它添加到布局中
    QTableView *view = new QTableView(&window);  // 将窗体设置为父控件
    view->setModel(&model);  // 设置模型
    view->resize(800, 600);   // 设置大小

    // 4. 创建布局,并将 QTableView 加入其中
    QVBoxLayout *layout = new QVBoxLayout(&window);
    layout->addWidget(view);

    // 设置窗体标题和大小
    window.setWindowTitle("数据库表数据");
    window.resize(800, 600);

    // 显示窗体
    window.show();

    return a.exec();
}

;