【原创】连接数据库MySQL,读取、显示、修改数据
/* 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,读取、显示、修改数据的更多相关文章
- MySQL ALTER命令-修改数据表名或者修改数据表字段
需要修改数据表名或者修改数据表字段时,就需要使用到MySQL ALTER命令. 删除,添加或修改表字段 如下命令使用了 ALTER 命令及 DROP 子句来删除表的 i 字段: ALTER TABLE ...
- MySQL约束和修改数据表知识集结
一.约束 划分标准:功能.数据列的数目 功能: (1)NOT NULL(非空约束) (2)PRIMARY KEY(主键约束) (3)UNIQUE(唯一约束) (4)DEFAULT(默认约束) (5)F ...
- MySQL 5.7 修改数据物理文件目录
修改MySQL数据库物理文件存放位置,需要在MySQL配置文件中修改相关参数.安装MySQL5.7后,在MySQL安装目录下没有找到数据库物理文件,最后经过查找发现其在“C:\ProgramData\ ...
- MySQL 中 update 修改数据与原数据相同会再次执行吗?
阅读本文大概需要 2.8 分钟. 作者:powdba 来源:阿里云栖社区 一.背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执 ...
- MySQL中update修改数据与原数据相同会再次执行吗?
作者:powdba 来源:阿里云栖社区 一.背景 本文主要测试MySQL执行update语句时,针对与原数据(即未修改)相同的update语句会在MySQL内部重新执行吗? 二.测试环境 MySQL5 ...
- C#操作mysql数据库,往mysql读取或者写入数据
最近在开发的一个项目,需要将数据存贮在mysql数据库中,于是需要写一个操作mysql的帮助类,我采用的是官方的,还是先给出一个链接,后面有时间的话,继续更新. http://blog.csdn.ne ...
- java的jdbc连接数据库,读取表中数据
连接数据库操作步骤如下 架包 jar 建表 源码解析 1:架包 jar根据自己本版本选择正确jar包,本例采用maven 管理局,在pom.xml 中添加如下代码,自动下载架包 <depende ...
- Oracle读取和修改数据块的过程 专家
http://blog.itpub.net/18841027/viewspace-1649618/
- 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 ...
- MySQL数据库SQL修改数据规范
start transaction; select id,rname,free_course_ph,cmp_id,free_date_limit_ph from ebk_students WHERE ...
随机推荐
- python Django 创建应用
如图输入如下命令 python manage.py startapp apitest 添加应用到 autotest项目项目下 在settings.pyo 中加入“apitest”,如下图 创建视图 在 ...
- Python Yaml 学习
最近开始使用Python3.x,所有今后无特殊说明,Python代表的就是Python3.x 最近在看代码时发现有人用Yaml —— Yet Another Markup Language :另一种标 ...
- (转)c# 断言类
Assert 类 使用 true/false 命题验证单元测试中的条件. 继承层次结构 System.Object Microsoft.VisualStudio.TestTools.UnitTesti ...
- Program Option Modifiers
Some option are 'boolean' and control behavior that can be turned on or off. --column-names option d ...
- one-class logistic regression (OCLR)
ONE-CLASS DETECTION OF CELL STATES IN TUMOR SUBTYPES Machine Learning Identifies Stemness Features A ...
- 使用jquery-form进行文件上传
jquery.form.js是一个form插件,支持ajax表单提交和ajax上传. 使用时,需要在代码中添加如下: <script src="http://malsup.github ...
- laravel安装Excel安装不上
1.生明版本号 composer require maatwebsite/excel 2.1我的PHP是7.0安装Excel得2.1 2.在composer.json中加入 "maatweb ...
- 如何设置Git SSH密钥
1. SSH 存储在user/用户名/.ssh文件夹下 生成SSH密钥 $ ssh-keygen -t rsa -C "your_email" 2. 查看生成的公钥 $ cat ~ ...
- Cassandra标准列和超级列
列(column)是Cassandra数据模型中的最基本的数据结构单元.列是一个由列名(key).值(value).时间戳(timestamp)构成的三元组.在关系型数据库中,你需要先定义列的名称和和 ...
- C++ leetcode::Reverse Integer
第一天上课,数据库老师说对于计算机系的学生,凡是在课本上学到的专业知识都是过时的.深以为然,感觉大学两年半真的不知道学了什么,为未来感到担忧,C++也不敢说是精通,入门还差不多.最近丧的不行,不管怎么 ...