当前位置: 首页 > news >正文

最权威的做网站优化价格百度灰色关键词代做

最权威的做网站优化价格,百度灰色关键词代做,网站制作 徐州,王爷王妃红鸾星动了在上篇文章中描述了怎样搭建读写数据库的环境。 本文更进一步,描述了读写mySQL数据库,字符、整型数字、图片。读写图片相对难点。 数据库的图片字段用BLOB,如果图片较大要用longblob,否则会报错。 另外,读写数据库都使用了短连…

在上篇文章中描述了怎样搭建读写数据库的环境。

本文更进一步,描述了读写mySQL数据库,字符、整型数字、图片。读写图片相对难点。

数据库的图片字段用BLOB,如果图片较大要用longblob,否则会报错。

另外,读写数据库都使用了短连接,完成后关闭连接

本文代码在QT6.2.4 MSVC2019 +MySQL5.7.44_X64 调试通过。

//1.数据库字段

              图1-数据库字段示意图

//2.界面

图2-界面

//3.代码

//3.1 头文件

#ifndef WIDGET_H
#define WIDGET_H

#include <QWidget>
#include <QPushButton>
#include <QLabel>
#include <QVBoxLayout>
#include <QtSql/qtsql>

QT_BEGIN_NAMESPACE
namespace Ui {
class Widget;
}
QT_END_NAMESPACE

class Widget : public QWidget
{
    Q_OBJECT

public:
    Widget(QWidget *parent = nullptr);
    ~Widget();
    void initUI();//初始化界面
    QPushButton* btn_write ;//写入按钮
    QPushButton* btn_read;//读取按钮
    QLabel * lb_name;//显示姓名
    QLabel * lb_age;//显示年龄
    QLabel * lb_picture;//显示图片

  

private:
    Ui::Widget *ui;
    QByteArray m_imageData2;//图片的字节数组
    QString m_name;//姓名变量
    int m_age;//年龄变量

private slots:
    void btn_write_click();//写入按钮子程序
    void btn_read_click();//读取按钮子程序

};
#endif // WIDGET_H

//-----------------------------------------------------------------------------------------------------------

//3.2  cpp文件

#include "widget.h"
#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
    initUI();
}
void Widget::initUI()
{
     QVBoxLayout* vlayout = new QVBoxLayout();
     btn_write = new QPushButton(this);
     btn_write->setText("写入数据库");
     btn_write->setFixedWidth(100);
     vlayout->addWidget(btn_write);
     btn_read = new QPushButton(this);
     btn_read->setText("读数据库");
     btn_read->setFixedWidth(100);
     vlayout->addWidget(btn_read);
     lb_name=new QLabel("待读出姓名");
     lb_name->setFixedWidth(100);
     vlayout->addWidget(lb_name);
     lb_age=new QLabel("待读出年龄");
     lb_age->setFixedWidth(100);
     vlayout->addWidget(lb_age);
     lb_picture=new QLabel("待读出图片");
      vlayout->addWidget(lb_picture);
     setLayout(vlayout);
    QObject::connect(btn_write, &QPushButton::clicked,this,&Widget::btn_write_click);
    QObject::connect(btn_read, &QPushButton::clicked,this,&Widget::btn_read_click);
}
void Widget::btn_write_click()
{
    qDebug()<<QSqlDatabase::drivers();
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setPort(3306);
    db.setDatabaseName("db_name");//你自己的数据库名称
    db.setUserName("root");
    db.setPassword("123456");

    if (!db.open()) {
        qDebug()<<"不能连接"<<"connect to mysql error"<<db.lastError().text();
        return ;
    }
    else
    {
        qDebug()<<"数据库连接成功";
    }

   
    QString imagePath = "d:/Pictures/LeiJun.png";
    // Read image file
    QFile file(imagePath);
    if (!file.open(QIODevice::ReadOnly)) {
        qDebug() << "Error: Failed to open image file";
        return  ;
    }
    QByteArray imageData = file.readAll();

    QSqlQuery query;
    query.prepare("INSERT INTO test (name, age,image) VALUES (:value1, :value2, :value3)");
    query.bindValue(":value1", "LeiJun");
    query.bindValue(":value2", 50);
    query.bindValue(":value3", imageData);

    if (!query.exec())

    {
        qDebug() << "Failed to insert data. Error: " << query.lastError().text();
        db.close();
        return  ;
    }
    qDebug() << "Data inserted successfully";
    db.close();
}
void Widget::btn_read_click()
{
    qDebug()<<QSqlDatabase::drivers();
    QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
    db.setHostName("127.0.0.1");
    db.setPort(3306);
    db.setDatabaseName("db_name");//你自己的数据库名称
    db.setUserName("root");
    db.setPassword("123456");

    if (!db.open()) {
        qDebug()<<"不能连接"<<"connect to mysql error"<<db.lastError().text();
         db.close();
        return ;
    }
    else
    {
        qDebug()<<"数据库连接成功";
    }
   
     //读图片
     QSqlQuery query;
      query.exec("SELECT * FROM test WHERE name = 'LeiJun' LIMIT 1;");
    if (!query.next()) {
        qDebug() << "Error: Failed" << query.lastError().text();
         db.close();
        return ;
    }
    else
        qDebug() << "读数据成功";

    //姓名
    m_name = query.value(0).toString();
    qDebug()<<m_name;
    lb_name->setText(m_name);
    //年龄
    m_age = query.value(1).toInt();
    qDebug()<<m_age;
    lb_age->setText(QString::number(m_age));
    //图片的二进制
    m_imageData2 = query.value(2).toByteArray();//转换成字节数组
    // Create image from data
    QPixmap pixmap;
    pixmap.loadFromData(m_imageData2);
     lb_picture->setPixmap(pixmap);显示图片

    db.close();
}
Widget::~Widget()
{
    delete ui;
}

//4.代码下载链接

https://download.csdn.net/download/weixin_39926429/89374527

http://www.zhongyajixie.com/news/42333.html

相关文章:

  • 网站定制合同和模版的区别天堂网
  • 网站开发常用的语言和工具西安网络推广运营公司
  • 用python做美食网站成都网站建设方案外包
  • 做产品推广有网站比较好的海淀区seo全面优化
  • 上海跨境电商网站制作西安网站关键词推广
  • 简单网站建设推荐百度学术论文查重官网入口
  • 网站用静态域名解析网页设计主要做什么
  • 网站建设时 网站信息可以边建设边组织职业培训网
  • 企业定制网站价格表鄂尔多斯seo
  • 做电子商务网站需要办理什么证谷歌收录提交入口
  • 简单网站建设课程义乌最好的电商培训学校
  • 通城网站建设怎样制作一个自己的网站
  • wordpress上传打文件失败北京官网seo收费
  • 企业网站包含的要素西安做网站哪家好
  • 做网站和推广硝酸银试剂盒怎样精选关键词进行网络搜索
  • 做公司网站详细步骤百度官方推广
  • 团购网站怎么做廊坊seo优化
  • 信息技术转移网站建设南昌seo营销
  • 怎么看网站是否被k过网络销售技巧
  • 网站模版怎么用广州seo好找工作吗
  • 武汉企业网站建设百度网盘搜索引擎入口在哪里
  • 做外贸批发网站是哪个seo网站查询工具
  • 大连市营商环境建设局网站网上企业推广
  • 兼职做网站挣钱么免费网络推广公司
  • 给手机做网站的公司有哪些湖南正规seo公司
  • 汕头市国外网站建设公司百度广告电话号码
  • 做阿里巴巴网站费用吗seo网站培训
  • 到那里找做网站的兼职今日刚刚发生的新闻
  • 那些网站可以上传自己做的视频百度链接提交入口
  • 上海wordpress建站google seo怎么做