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数据库及增删改查示例 的相关文章

  • Hibernate 可以使用 MySQL 的“ON DUPLICATE KEY UPDATE”语法吗?

    MySQL 支持 INSERT ON DUPLICATE KEY UPDATE 语法允许您 盲目 插入数据库 并回退到更新现有记录 如果存在 当您想要快速事务隔离并且想要更新的值取决于数据库中已有的值时 这非常有用 作为一个人为的示例 假设
  • 在 MySQL 数据库中存储图像文件或 URL?哪个更好? [复制]

    这个问题在这里已经有答案了 可能的重复 在数据库中存储图像 是还是否 https stackoverflow com questions 3748 storing images in db yea or nay 数据库中的图像与文件系统中的
  • MySQL 按主键排序

    某些 SQL 服务器允许使用通用语句 例如ORDER BY PRIMARY KEY 我不相信这适用于 MySQL 是否有任何此类解决方法可以允许跨多个表自动选择 或者是否需要查找查询来确定主键 我一直在研究的解决方法包括调用SHOW COL
  • 使用唯一索引删除重复项

    我在两个表字段 A B C D 之间插入 相信我已经在 A B C D 上创建了唯一索引以防止重复 然而我以某种方式简单地对这些做了一个正常的索引 因此插入了重复项 这是2000万条记录的表 如果我将现有索引从普通索引更改为唯一索引 或者只
  • 通过连接从两个表中删除?

    我有两个表如下 tbl1 tbl2 id article id title image whole news tags author older datetime 其中 tbl1 id gt tbl2 article id 如何从两个表中删
  • PHP PDO相关:更新SQL语句未更新数据库内容

    我正在尝试使用准备好的语句来实现更新语句PHP http en wikipedia org wiki PHP脚本 但它似乎没有更新数据库中的记录 我不确定为什么 所以如果您能分享一些见解 我将不胜感激 Code query UPDATE D
  • 如何以最少的查询次数获取帖子列表和关联标签

    我的表格结构如下 标签 更多的是一个类别 id 标签名称 描述 slug POSTS ID 标题 网址 邮戳 id idPost idTag USERS ID 用户名 userSlug VOTES id idPost idUser 每个帖子
  • 将记录分成两列

    我的数据库中有一个 学生 表 其中包含大约 5 000 条记录 我想将这些记录显示在two分区 如何在不执行查询两次的情况下做到这一点 仅使用单个查询 显示示例http www freeimagehosting net uploads f1
  • ActiveRecord3死锁重试

    Rails 3 或 ActiveRecord 3 是否有任何插件可以复制旧版本死锁重试 http agilewebdevelopment com plugins deadlock retry插入 或者 该插件仍然适用于 Rails 3 吗
  • 对于数据库来说,选择正确的数据类型会影响性能吗?

    如果是这样 为什么 我的意思是 tinyint 的搜索速度比 int 快吗 如果是这样 性能上的实际差异是什么 是的 根据数据类型 它确实有所不同 int vs tinyint不会在速度上产生明显的差异 但会在数据大小上产生差异 假设tin
  • PDO SQLSRV 和 PDO MySQL 在获取 int 或 float 时返回字符串

    当您获取时 PDO MS SQL Server 和 PDO MySQL 都会返回一个字符串数组 即使列的 SQL 类型本应是数字类型 例如 int 或 float 我设法解决了这个问题 但我想了解为什么它们一开始就这样设计 是不是因为PDO
  • 使 pdo::query 静态

    当我运行下面的代码时出现此错误 我通常使用 msql 函数 但我尝试使用 PDO 代替 怎么了 致命错误 第 14 行无法静态调用非静态方法 PDO query
  • 查询中列的顺序重要吗?

    当从 MySQL 表中选择列时 与表中的顺序相比 选择列的顺序是否会影响性能 不考虑可能覆盖列的索引 例如 您有一个包含行 uid name bday 的表 并且有以下查询 SELECT uid name bday FROM table M
  • 当sql连接中存在两个同名列时,如何从一个表列中获取值

    当我连接两个具有相同名称列的表时 我目前面临着尝试获取值的问题 例如 table1 date和table2 date 每个表中的日期不同 我将如何获取 日期 本例中的表1 我目前正在跑步 while row mysqliquery gt f
  • 阻止注销页面后的后退按钮

    我有 php 注销页面 当用户单击注销链接时 请参阅此页面并重定向到索引页面 但是当单击后退按钮时 我会看到带有用户数据的上一页 当然 当我刷新页面时 我看不到以前的页面和数据 我在单击注销并单击后退按钮后检查了其他代码 drupal 但我
  • 如何在Mysql中仅将不同的值从一个表复制到另一个表?

    我有一个大约 2 5GB 的 MySql 数据库 表 A 具有以下列 anoid query date item rank url 我刚刚创建了另一个仅包含列的表 b query and date 我想在查询列中插入所有不同的记录 及其各自
  • MYSQL 区分大小写的 utf8 搜索(使用 hibernate)

    我的登录表具有 utf8 字符集和 utf8 排序规则 当我想要检查用户名并检索该特定用户名的其他信息时 hql 查询会为我提供小写和大写相同的结果 我应该如何处理适用于案例的 HQL 查询 我使用 Mysql 5 和 java hiber
  • InnoDB 因读未提交而死锁! - Java - Glassfish - EJB3(JPA/Hibernate)

    几天来 我在使用 Glassfish EJB3 和 Mysql InnoDB 的 Java 应用程序上遇到了死锁问题 配置 Mysql InnoDB Ver 14 12 Distrib 5 0 51a 适用于 debian linux gn
  • Laravel leftJoin 仅右表的最后一条记录

    我是 Laravel 的新手 我有两张桌子 1 产品 2 价格 products id product int p key name varchar prices id price int p key id product int
  • 将第三个表链接到多对多关联中的桥接表

    设计这个数据库的正确方法是什么 这是我设置表格的方式 我在名为 教师 的表和名为 仪器 的表之间存在多对多关系 然后我有一个连接两者的桥接表 我想将另一个表与 BRIDGE 表关联起来 意思是乐器 老师的组合 该表有 3 行 指定老师可以教

随机推荐