/* Time: 2017.01.02 —— 2017.01.04

* Author: WJ

* Function:连接数据库,从数据库中读取图片并显示(已成功)

*/

【参考链接】

MySQL存入图片+Qt读入读出数据库中的图片 - lpdpzc的专栏 - 博客频道 - CSDN.NET http://blog.csdn.net/lpdpzc/article/details/41915835

【主要代码】

void MainWindow::on_ShowImage_clicked()

{

QSqlDatabase db ;

// 连接数据库

if(QSqlDatabase::contains("qt_sql_default_connection"))

db = QSqlDatabase::database("qt_sql_default_connection");

else

{

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

db.setHostName("localhost");

db.setDatabaseName("sfood");

db.setUserName("root");

db.setPassword("123456");

}

if(! db.open())

{

qDebug()<<"Fail to Opened!";

}

else

{

qDebug()<<"DataBase Opened!";

//建立查询

QSqlQuery query;

query.exec("SELECT * FROM sfood"); //查询未成功

if (! query.exec("SELECT * FROM sfood"))

{

qDebug()<<" Fail to Selecte !";

}

else

{

qDebug()<<" Selected Success!";

QPixmap photo;

qDebug()<<"显示图片";

if(query.first())

{

photo.loadFromData(query.value(5).toByteArray(), "JPG"); //从数据库中读出图片为二进制数据,图片格式为JPG,然后显示到QLabel里

}

ui->label->setPixmap(photo);

ui->label->setScaledContents(true);

}

}

}

【结果】

从数据库中读取其他信息:菜名、价格

【代码】

if(query.first())

{

QString str1 = query.value(1).toString();

ui->lineEdit->setText(str1); // 菜名

price = query.value(4).toInt();

ui->lineEdit_2->setText(QString::number(price)); // 价格

photo.loadFromData(query.value(6).toByteArray(), "JPG");

//从数据库中读出图片为二进制数据,图片格式为JPG,然后显示到QLabel里

}

【结果】

【思考】 query.first() 与 query.next() 的区别?

query.first() 图片显示正常

query.next() 图片无法显示

【原创】连接数据库MySQL,读取、显示、修改数据的更多相关文章

  1. MySQL ALTER命令-修改数据表名或者修改数据表字段

    需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 删除,添加或修改表字段 如下命令使用了 ALTER 命令及 DROP 子句来删除表的 i 字段: ALTER TABLE ...

  2. MySQL约束和修改数据表知识集结

    一.约束 划分标准:功能.数据列的数目 功能: (1)NOT NULL(非空约束) (2)PRIMARY KEY(主键约束) (3)UNIQUE(唯一约束) (4)DEFAULT(默认约束) (5)F ...

  3. MySQL 5.7 修改数据物理文件目录

    修改MySQL数据库物理文件存放位置,需要在MySQL配置文件中修改相关参数.安装MySQL5.7后,在MySQL安装目录下没有找到数据库物理文件,最后经过查找发现其在“C:\ProgramData\ ...

  4. MySQL 中 update 修改数据与原数据相同会再次执行吗?

    阅读本文大概需要 2.8 分钟. 作者:powdba 来源:阿里云栖社区 一.背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执 ...

  5. MySQL中update修改数据与原数据相同会再次执行吗?

    作者:powdba 来源:阿里云栖社区 一.背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗? 二.测试环境 MySQL5 ...

  6. C#操作mysql数据库,往mysql读取或者写入数据

    最近在开发的一个项目,需要将数据存贮在mysql数据库中,于是需要写一个操作mysql的帮助类,我采用的是官方的,还是先给出一个链接,后面有时间的话,继续更新. http://blog.csdn.ne ...

  7. java的jdbc连接数据库,读取表中数据

    连接数据库操作步骤如下 架包 jar 建表 源码解析 1:架包 jar根据自己本版本选择正确jar包,本例采用maven 管理局,在pom.xml 中添加如下代码,自动下载架包 <depende ...

  8. Oracle读取和修改数据块的过程 专家

    http://blog.itpub.net/18841027/viewspace-1649618/

  9. mysql 关联表修改数据

    UPDATE t1 INNER JOIN t2 ON t1.c1=t2.c1  SET t1.c2=value WHERE t1`removed`=0 AND t2`removed`=0 AND t1 ...

  10. MySQL数据库SQL修改数据规范

    start transaction; select id,rname,free_course_ph,cmp_id,free_date_limit_ph from ebk_students WHERE ...

随机推荐

  1. iOS获取UUID

    转自:<iOS获取设备的唯一标识的方法总结以及最好的方法> 参考:<获取iOS设备唯一标识> 总结一下: 1.代码采用CFUUID+KeyChain的实现方式. 2.CFUUI ...

  2. (转+整理)C#中使用GUID

    GUID(全局统一标识符)是指在一台机器上生成的数字,它保证对在同一时空中的所有机器都是唯一的.通常平台会提供生成GUID的API.生成算法很有意思,用到了以太网卡地址.纳秒级时间.芯片ID码和许多可 ...

  3. python+selenium:点击页面元素时报错:WebDriverException: Message: Element is not clickable at point (1372.5, 9.5). Other element would receive the click: <li style="display: list-item;" id="tuanbox"></li>

      遇到一个非常郁闷的问题,终于解决了, 问题是这样的,NN网站的价格计划,每一个价格计划需要三连击才能全部点开,第一个房型的价格计划是可以正确三连击打开的,可是第二个房弄就不行了,报错说不是可点击的 ...

  4. The MySQL Server

    mysqld is the MySQL server. configuring the server. The mysql server, mysqld,has many command option ...

  5. HeadFirst Ruby 第十四章总结 Web apps: Serving HTML

    前言 这一章节主要讲了如何利用 Ruby 中的 Sinatra 这个 gem 来创建一个 Web app 的具体流程,其中的要点包括了: Sinatra, a third party library ...

  6. Getting Started withProcessing 第八章总结

    运动 在这一章中,作者讲述了如何对图元中的对象进行实现动画的效果. 实现运动的几种方式 在书中,作者通过讲解一些对应的知识,让图元能够产生移动的效果.这几种方式包括: 速度和方向 在全局变量中定义两个 ...

  7. 比对软件之STAR的使用方法

    建索引 普通比对 二次比对 用于cufflinks和stringtie的比对 待续~ 参考:比对软件STAR的简单使用

  8. No address associated with hostname

    java.net.UnknownHostException: Unable to resolve host "www.baidu.com": No address associat ...

  9. JavaScript Transpilers: 为什么需要用它们?Babel的使用介绍。

    英文原文 https://scotch.io/tutorials/javascript-transpilers-what-they-are-why-we-need-them 摘译(文章内的代码有些过期 ...

  10. p1209 Barn Repair

    用优先队列存放不连续的断点及断的位置.优先取间距大的,在断点断开. #include <iostream> #include <cstdio> #include <cma ...