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

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();
}


http://www.kler.cn/a/517607.html

相关文章:

  • 数据融合的经典模型:早期融合、中期融合与后期融合的对比
  • MyBatis优化及高级查询
  • 利用ML.NET精准提取人名
  • LabVIEW项目中的工控机与普通电脑选择
  • docker: Device or resource busy
  • HMV Challenges 022 Writeup
  • CLOUDFLARE代理请求重定向你太多次
  • 基于自然语言处理的垃圾短信识别系统
  • 【大模型】基于LLaMA-Factory的模型高效微调(2)
  • 【Qt】: QPointer详解
  • Elasticsearch 性能测试工具全解析
  • 【机器学习案列】探索各因素对睡眠时间影响的回归分析
  • 2025美赛数学建模A题:解题的长期磨损——思路+代码+模型:
  • HTML5 Web Worker 的使用与实践
  • UDP 广播组播点播的区别及联系
  • 【Django教程】用户管理系统
  • SpringAI基于API对大语言模型调用
  • 复旦:提升LLM在医疗领域的推理能力
  • GIS 中的 SQLAlchemy:空间数据与数据库之间的桥梁
  • Android实训九 数据存储和访问
  • 设计模式-建造者模式、原型模式
  • 云计算如何与物联网(IoT)结合?
  • Macos交叉编译android的cmix压缩算法
  • 「 机器人 」“控制权”在扑翼飞行器中的重要性及其优化挑战
  • LeetCode#238. 除自身以外数组的乘积
  • 无人机在城市执法监管中的应用:技术革新与监管挑战