Windows Qt通过ODBC数据源连接Mysql并在Qt中执行sql语句

常见处理数据库数据前要将数据可视化或者显示到前端,这就不得不需要完成系统对数据库的初始化和链接操作。

(1)开启Mysql服务;

(2)链接navicate到mysql并测试是否连接成功

(3)打开ODBC服务并创建用户SDN和系统SDN,根据本机的不同位数选择合适的平台32/64位。添加成功后测试连接。

这里的服务器IP地址选择的回环地址,端口可自己设置但后面连接是要用到。

Sql_connected()函数中设置的参数与此处设置的一一对应。

Data Source Name自己命名后续连接也用得到;

Description可以随便填;

User,Password需要填自己的数据库用户名和密码;

Database是选择的数据库(后续需要操作的数据库)如这里选择的supmarketmanage,则连接上之后操作的就是数据库中的这个数据库

至此,准备工作完成,后面将介绍Qt部分。

(1)构建文件中添加sql模块

函数类:initializesql.class

(2)操作函数的头文件 initializesql.h

源代码:

#ifndef CTC_INITIALIZESQL_H
#define CTC_INITIALIZESQL_H
#include <QObject>
#include <QApplication>
#include <QDebug>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlQueryModel>
#include <QSqlError>

class ctc_InitializeSql : public QObject
{   
    Q_OBJECT
public:    
        explicit ctc_InitializeSql(QObject *parent = nullptr);
/*
 *  连接数据库 
 ************/    
bool Sql_connected();
/*
 *  sql执行语句
 *  参数一:sql语句
 ****************/   
 bool Sql_Executethestatement(QString Statement);

private:   
     QSqlDatabase db;
};
#endif // CTC_INITIALIZESQL_H

 

(3)操作函数的源文件  initializesql.cpp

源代码:

/************************************

     Created 2023.12.16 23:27

   执行qt连接并操作mysql数据库的封装类

************************************/

#include "ctc_initializesql.h"

ctc_InitializeSql::ctc_InitializeSql(QObject *parent) : QObject(parent)

{

}

bool ctc_InitializeSql::Sql_connected()

{

     //输出支持的驱动

     //qDebug() << "支持的数据库驱动有:" << QSqlDatabase::drivers();

     //连接数据库

     db = QSqlDatabase::addDatabase("QODBC");

     db.setHostName("127.0.0.1");

     db.setPort(3307);

     db.setDatabaseName("Mydata");

     db.setUserName("root");

     db.setPassword("123456");

     bool ok = db.open();

     if (ok){

     qDebug()<<"open successful!";

//输出可用表

     QStringList tables = db.tables();

     foreach(QString table, tables)

     qDebug()<<table;

     }

     else {

         qDebug()<<"数据库打开失败  "<<db.lastError().text();

     }

}

bool ctc_InitializeSql::Sql_Executethestatement(QString Statement)

{

    Sql_connected();

    bool isOk = db.open();

    if(!isOk){

        qDebug()<<"error info :"<<db.lastError();

    }

    else{

        QSqlQuery query;

        query.prepare(Statement);

        if(!query.exec()){

                  qDebug()<<"query error :"<<query.lastError();

        }

        else{

                 qDebug()<<"creat table success!";

        }

   }

    db.close();

}

添加完该类之后 在其他类测试:

测试结果:执行sql语句成功

  • 17
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码 毕业设计 课程设计 系统设计 系统开发 C++ QT 数据库 源代码

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

andu__

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值