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

2023-05-16


#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);  

}  

  
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

qt连接MySql数据库及增删改查示例 的相关文章

  • 限制分页页数

    objConnect mysql connect localhost root or die mysql error objDB mysql select db Test strSQL SELECT FROM UserAddedRecord
  • MySQL小写自动转换

    我有多个在数据库表中写入数据的 Web 服务 我想针对特定字段自动将大写字符串转换为小写字符串 mysql 有没有执行此任务的函数 假设这是表 id name language 有时 在语言字段内 Web 服务会写入大写字符串 IT 我想直
  • 在 BIRT 中输入参数后更新数据集查询

    在 BIRT 报告设计中传递参数后 如何更改或更新数据集的查询 详细说明 我有一个如下所示的查询 WHERE 该参数标记可以保存不同的值 在用户输入参数后 它看起来像这样 例如 WHERE column name 1 or WHERE co
  • MySQL 正在将我的时间戳值转换为 0000-00-00

    我是 PHP 新手 目前仍在学习中 我认为我的注册表有问题 username password email全部成功插入MySQL registered and last seen不要 我以为我正在使用getTimestamp 错了 但它呼应
  • Innodb页面大小设置

    在innodb中 页面大小默认为16kb 如何将页面大小设置为 8kb 是否有在源编译步骤中设置的选项 您不需要在源编译步骤中指定页面大小 MySQL 5 6 及更高版本支持不同的页面大小 无需重新编译 但是 您必须在初始化 InnoDB
  • MySQL SELECT OpenCarts 数据库中的重复行

    只是玩一下 OpenCart DB 看看我是否能学到一些东西 如果我使用以下SELECT结果返回重复的行 SELECT DISTINCT p product id AS pid p model AS modelo SUBSTRING p m
  • 如何使用 SQL 对项目进行排序,然后按另一个条件再次排序

    我正在使用 MySQL 我想对记录进行排序 或者我想对记录进行分组 然后按另一个条件再次对其进行排序 例如我有 6 个项目 Names Group Jack G1 Dian G2 Emily G2 Dean G1 Teddy G2 Gabe
  • 从 MySQL 将 500 万行加载到 Pandas 中

    我在 本地 网络上的 MySQL 数据库中有 500 万行 连接速度非常快 而不是在互联网上 与数据库的连接工作正常 但如果我尝试这样做 f pd read sql query SELECT FROM mytable engine inde
  • 性能:cakephp-mysql 中的 UUID 与自动递增

    我正在搜索 cakePHP 生成的 UUID 32 个字符长 是否比自动增量在性能上更快 插入和选择操作的比较 我应该使用 cakePHP 生成的 UUID 还是使用 MySQL 的简单自动增量生成的 UUID 这是我发现的一个案例研究 但
  • 用教义 2 DBAL 连接子查询

    我正在重构 Zend 框架2应用程序使用学说 2 5 DBAL 而不是 Zend DB ZF1 我有以下 Zend Db 查询 subSelect db gt select gt from user survey status entrie
  • 使用 MySQL 的 CURDATE() 或 PHP 的 date() 更快?

    使用mysql查询是不是更快 SELECT CURDATE as today 或 PHP 语句 curdate date Y m d 同样的答案是否适用于使用date VS MySQL 的NOW and CURTIME 如果您只是执行查询以
  • MySQL通过UPDATE/DELETE合并重复数据记录

    我有一个看起来像这样的表 mysql gt SELECT FROM Colors ID USERNAME RED GREEN YELLOW BLUE ORANGE PURPLE 1 joe 1 null 1 null null null 2
  • MySQL - 查找接近的匹配项

    MySQL 有没有办法在文本字段中找到紧密匹配的内容 说找到 email protected cdn cgi l email protection当搜索时 email protected cdn cgi l email protection
  • Mysql 将 --secure-file-priv 选项设置为 NULL

    我在 Ubuntu 中运行 MySQL 我在运行特定的查询集时收到此错误 MySQL 服务器正在使用 secure file priv 选项运行 因此无法执行此语句 当我这样做的时候SELECT secure file priv 在我的 m
  • MySQL 薛定谔表:存在,但不存在

    我遇到了最奇怪的错误 有时 在创建或更改表时 我会收到 表已存在 错误 但是 DROP TABLE 返回 1051 未知表 所以我得到了一个无法创建 无法删除的表 当我尝试删除数据库时 mysql 崩溃了 有时它有助于创建另一个具有不同名称
  • 转义用户数据,无需魔法引号

    我正在研究如何在来自外部世界的数据被用于应用程序控制 存储 逻辑等之前正确地对其进行转义 显然 随着 magic quote 指令在 php 5 3 0 中很快被弃用 并在 php6 中被删除 对于任何想要升级并进入新语言功能 同时维护遗留
  • Laravel 读写连接不同步

    我在 Laravel 5 2 应用程序中使用读写 MySQL 连接设置 mysql gt write gt host gt env DB HOST WRITE localhost read gt host gt env DB HOST RE
  • 控制数据是否存在于数组中

    我在mysql中有两个不同的表 我正在使用curl从json文件中获取数据 我的第一个表名称是 tblclients 该表存储客户端数据 我的第二个表名称是 tblcustomfieldsvalues 该表使用 tblclients 表的
  • Mysql加密/存储敏感数据,

    我的 PHP 网站有以下内容 启用 SSL 饼干 session set cookie params cookieParams lifetime cookieParams path cookieParams domain secure ht
  • 如何统计订单总价?

    我有这些表 Orders id status user id address id 1 await 1 1 products id name price quantity 1 test1 100 5 2 test2 50 5 order p

随机推荐