qt连接MySql数据库及增删改查示例

本文介绍了一个使用Qt进行数据库操作的应用示例,包括连接数据库、创建表、插入数据、删除记录、查询数据及删除表等基本操作。通过示例代码展示了如何在Qt应用程序中集成SQL功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QtSql/QSqlDatabase"
#include "QMessageBox"
#include "qdebug.h"
#include <QSqlError>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QTime>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
}

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

void MainWindow::on_pushButton_clicked()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
        db.setHostName("127.0.0.1");
        db.setPort(3306);
        db.setDatabaseName("MyDataBaseName"); //不是Database,记得别填错
        db.setUserName("root");
        db.setPassword("root");
        bool ok = db.open();
        if (ok){
            QMessageBox::information(this, "infor", "link success");
        }
        else {
            QMessageBox::information(this, "infor", "link failed");
            qDebug()<<"error open database because"<<db.lastError().text();
        }


}

void MainWindow::on_pushButton_2_clicked()
{
    QSqlQuery query;
    QString sql1 = "create table ChannelValues1(id int ,name varchar(100),Ch1 double(64,5),Ch2 double(64,5));";
    query.exec(sql1);
}

void MainWindow::on_pushButton_3_clicked()
{
    QTime time;
    time.start();
    for(int i=0;i<500*10000;i++)
    {
        int id = 0;
        QString name = "aaa";
        double Ch1 = 9.999;
        double Ch2 = 8887.987666652;
        QString sql = QString("insert into ChannelValues1(id,name,Ch1,Ch2) values('%1','%2','%3','%4')").arg(id).arg(name).arg(Ch1).arg(Ch2);
        QSqlQuery query;
        query.exec(sql);
    }
  qDebug()<<"耗时"+time.elapsed()<<"毫秒";
}

void MainWindow::on_pushButton_4_clicked()
{
      int id =0;
       QString sql = QString("delete from ChannelValues1 where id = '%1'").arg(id);
       QSqlQuery query;
       query.exec(sql);
}

void MainWindow::on_pushButton_5_clicked()
{
        QSqlQuery q;
        q.exec("select *from ChannelValues1");
        while(q.next())   //遍历完为false
        {
            //以下标
            //qDebug()<<q.value(0).toInt()<<q.value(1).toString()<<q.value(2).toInt()
           // <<q.value(3).toInt();
            //以字段
            qDebug()<<q.value("id").toInt()<<q.value("name").toString()<<q.value("Ch1").toDouble()
            <<q.value("Ch2").toDouble();
        }
}

void MainWindow::on_pushButton_6_clicked()
{
    QSqlQuery query;
    QString sql1 = "DROP table ChannelValues1";
    query.exec(sql1);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值