完成前三个博客的安装配置AA, BB, CC,总得写点什么证明安装配置的没问题。

所以用Qt读写MySQL。

(一)参考链接:https://blog.csdn.net/kilotwo/article/details/79248657   写的程序。

(二)出现的问题:

1、Can't connect to MySQL server on '127.0.0.1' (10061) QMYSQL: Unable to connect"     链接数据库失败

2、QMetaObject::connectSlotsByName: No matching signal for on_pushButton_2_clicked()       2-8个button没有关联上

13cc956902fa808cb83af3a7a29a4d9c.png3cff8f9417fcdc56728d19bf35a03658.png

总是提示,这个函数没有被使用。

在这两种方式下debug,都不行。—_—##

5280115f03c856fef3ee997b6be585c1.png

2c511639be93441dc35338a02265fcbe.png

(三)解决方案:

(1)

从 X:\MySQL\lib中将 libmysql.dll 文件复制X:\Qt\Qt5.6.1\5.6\mingw49_32\bin中。

从 X:\MySQL\lib中将 libmysql.dll 文件复制X:\Qt\Qt5.6.1\5.6\msvc2017_64\bin中。

(2)

eae692d2cbdad1e5e1efd8cf165c2aad.png  // 添加端口号,链接中,没有添加端口号。

(3)原链接这句话不能识别,故修改如下:

711cbb314973f281d4308ad678caf4c6.png

(4)e6141fc33827a4e027664c8373bdd112.png    OK,可以写入数据库。但是中文有乱码,,,

新添加数据  ↓↓↓                                                                                  显示结果 ↓↓↓

63401d638c84ff72ac0675351d4a13e5.png    62551ab7fa28e9fc9f9bfde8080e79f4.png

界面有点丑,继续修改一下。然后测试其他按钮是否OK

补充,解决乱码问题:

方案一:

找到 createConnection() 函数,添加如下:

static bool createConnection()

{

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

db.setHostName("localhost"); // 本地数据库

db.setDatabaseName("information"); // 数据库名

db.setUserName("root"); // 用户名

db.setPassword("*****"); // 密码

db.setPort(3307);

// 解决中文显示乱码

QTextCodec *codec = QTextCodec::codecForName("utf-8");

QTextCodec::setCodecForLocale(codec);

if(!db.open())

{

//QMessageBox::critical(nullptr, QObject::tr("无法打开数据库"), "无法创建数据库连接!", QMessageBox::Cancel);

//qDebug()<

方案二:

在构造函数中,添加两行数据: UTF8 和 GBK 均失败

MainWindow::MainWindow(QWidget *parent) :QMainWindow(parent),ui(new Ui::MainWindow)

{

ui->setupUi(this);

// 添加

model = new QSqlTableModel(this);

//QTextCodec::setCodecForLocale(QTextCodec::codecForName("UTF8"));

//QTextCodec *codec = QTextCodec::codecForName("GBK");

model->setTable("information");

model->select();

// 设置编辑策略

model->setEditStrategy(QSqlTableModel::OnManualSubmit);

ui->tableView->setModel(model);

}

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐