VS+Qt数据库的使用

该文介绍了如何在QT中使用QSQLITE模块创建、操作数据库,包括创建表、删除表、插入数据、查询等基本操作,并展示了如何将数据库中的数据在QTableView控件中显示,以及获取QTableView选中行的数据。

一、基本用法:

QT中自带的数据库--QSQLITE。使用数据库前,需要创建数据库,并打开数据库,随后,建立数据库连接。

创建数据库:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "sqlite1"); db.setDatabaseName(".//qtDb.db");

连接数据库:

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

QSqlQuery query(db);  

创建表:

 query.exec("create table 表名(" "id1 char(11)," "id2 int," "id3 int(11))");

删除表:

query.exec("drop table 表名"); 

向表中插入数据项语句:

 QString("insert into 表名 values('1%','2%',...)").arg(参数1).arg(参数2)...;

向表中删除数据项语句:

QString("delete from 表名 where id=‘%1’").arg(参数1); 

在表中查询数据项语句:

QString("select id1 from 表名 where id2='%1'").arg(参数); 

更新表语句:

QString("update 表名 set id1=‘%1’ where id2='%2'").arg(参数1).arg(参数2); 

 上述语句,需结合下列语句使用生效:

  • QString str=QString("操作").arg(可能需要的参数);
  • query.exec(str);

二、QTableView获取某行某列数据

代码如下:
获取鼠标选中的单元格所在的行数
int a=ui.tableView->currentIndex().row();

获取鼠标选中单元格所在行的第一个单元格的数值
a=model->data(model->index(a, 0)).toInt();

三、将数据库创建的表格在QTableView控件中显示

(这里省略了model的定义,在.h文件中定义一下即可)

model = new QSqlTableModel();
model->setTable("student"); 	//设置关联的表
model->select();    //全部选中待显示的内容
ui.tableView->setModel(model);   //在控件中显示model的数据

 

### 在 Visual Studio 2022QT 5.15.2 中配置并使用 SQL 数据库 要在 Visual Studio 2022Qt 5.15.2 中配置并使用 SQL 数据库,需要完成以下几个关键步骤:安装和配置开发环境、连接 MySQL 数据库以及操作数据库。以下是详细的说明: #### 1. 安装与配置开发环境 为了在 Visual Studio 2022使用 Qt 5.15.2,首先需要确保安装了正确的组件。安装过程中,除了选择 MSVC 2019_64-bit(尽管是 VS2022,但 Qt 的预编译版本可能仍然基于 MSVC 2019)外,还需要选择 Source[^1]。此外,安装 Qt Visual Studio Tools 是必要的,这将允许在 Visual Studio 中创建和管理 Qt 项目。 ```python # 安装时选择以下组件: - MSVC 2019_64-bit - Source (重要) - Qt Visual Studio Tools ``` #### 2. 配置 MySQL 连接 在连接 MySQL 数据库之前,需要确保 MySQL 已正确安装,并且可以正常运行。此外,还需要安装 OpenSSL,因为没有它可能会导致无法连接到 MySQL 数据库[^2]。 ##### 配置 Qt MySQL 插件 为了使 Qt 能够与 MySQL 数据库通信,需要手动配置 Qt 的 MySQL 插件。以下是具体步骤: 1. 下载并安装 MySQL Connector/C。 2. 将 MySQL Connector/C 的库文件复制到 Qt 的插件目录中。 3. 修改 `qmake.conf` 文件以包含 MySQL 的路径。 ```bash # 示例命令行操作 cd %QTDIR%\qtbase\src\plugins\sqldrivers qmake "INCLUDEPATH+=C:\mysql\include" "LIBS+=C:\mysql\lib\libmysql.lib" mysql.pro nmake ``` #### 3. 使用 CMake 构建项目 如果选择使用 CMake 来构建项目,则可以参考以下模板来组织文件结构[^4]。确保在 `CMakeLists.txt` 文件中添加对 Qt 和 MySQL 的支持。 ```cmake # CMakeLists.txt 示例 cmake_minimum_required(VERSION 3.15) project(MyQtSqlApp LANGUAGES CXX) set(CMAKE_PREFIX_PATH "C:/Qt/5.15.2/msvc2019_64/lib/cmake") find_package(Qt5 REQUIRED COMPONENTS Core Gui Widgets Sql) add_executable(MyQtSqlApp main.cpp mainwindow.cpp mainwindow.h resource.qrc) target_link_libraries(MyQtSqlApp PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets Qt5::Sql) ``` #### 4. 编写代码连接和操作数据库 以下是一个简单的示例代码,展示如何在 Qt 中连接 MySQL 数据库并执行基本的查询操作。 ```cpp #include <QCoreApplication> #include <QtSql> #include <QDebug> int main(int argc, char *argv[]) { QCoreApplication a(argc, argv); // 创建数据库对象 QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL"); // 设置数据库连接参数 db.setHostName("localhost"); db.setDatabaseName("testdb"); db.setUserName("root"); db.setPassword("password"); // 测试连接 if (!db.open()) { qDebug() << "Error: connection with database failed"; qDebug() << db.lastError().text(); return -1; } else { qDebug() << "Database: connection ok"; } // 执行查询 QSqlQuery query; if (query.exec("SELECT * FROM users")) { while (query.next()) { qDebug() << "User ID:" << query.value(0).toString(); qDebug() << "User Name:" << query.value(1).toString(); } } else { qDebug() << "Query failed:" << query.lastError().text(); } return a.exec(); } ``` #### 注意事项 - 确保 MySQL 数据库服务已启动并且可以通过指定的主机名和端口访问。 - 如果使用的是更高版本的 MySQL(如 8.0),可能需要调整加密插件设置以避免连接问题[^2]。 - 在 Visual Studio 中调试 Qt 项目时,确保正确配置了环境变量,例如 `PATH` 中包含 MySQL 的库路径。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值