摘要:```markdown# QSqlError常用函数## errorType### 返回错误的类型,如不合法操作、连接错误等。## nativeErrorCode### 返回与数据库的本地错误码相关的数字。## text### 返回描述错误的消息文本。## i
在Qt中操作MySQL数据库首先要安装MySQL的驱动文件,将MySQL下的libmusql.dll文件复制到Qt的安装路径下的bin文件夹下即可。
直接将libmySQL.dll文件粘贴到此文件夹中。
复制成功之后来测试一下驱动程序是否安装成功,新建一个文件,选择Qt设计师界面类,后面的操作都保持默认即可。
在Qt中操作MySQL数据库可以使用Qt提供的Qt sql模块。Qt SQL模块提供了一组类和函数来连接和操作各种数据库,包括MySQL。
首先,你需要在项目文件(.pro文件)中添加以下行来引入Qt SQL模块
QT += sql#include // 数据库#include #include #include // 操作错误#include #include // 数据库查询#include在构造函数中插入以下代码,然后点击运行,如果不弹出警告窗口则说明安装成功,否则就是失败了。
# QSqlDatabase常用函数## 连接数据库### addDatabase- 创建新的数据库连接并返回该连接的标识符### removeDatabase- 移除指定名称的数据库连接## 查询和操作### open- 打开数据库连接### close- 关闭数据库连接### isOpen- 检查数据库连接是否处于打开状态### exec- 执行SQL查询或其他操作### commit- 提交当前事务### rollback- 回滚当前事务## 连接属性### setHostName- 设置主机名### setDatabaseName- 设置数据库名### setUserName- 设置用户名### setPassword- 设置密码### setPort- 设置端口号## 错误处理### lastError- 返回最后发生的数据库错误### isOpenError- 检查数据库连接是否因错误而无法打开``````markdown# QSqlError常用函数## errorType### 返回错误的类型,如不合法操作、连接错误等。## nativeErrorCode### 返回与数据库的本地错误码相关的数字。## text### 返回描述错误的消息文本。## isValid### 如果错误有效,则返回True,否则返回False。``````markdown# QSqlQuery常用函数## 获取数据### exec:执行SQL查询或命令### next:定位到结果集中的下一条记录## 绑定值### BindValue:绑定值到查询占位符### addBindValue:添加绑定值到查询## 检索结果### value:返回当前记录中指定列的值### record:返回包含字段值的记录## 定位### seek:将记录指针移动到指定位置```//添加一个数据库QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); //括号内要写出数据库的类型//设置数据库db.setHostName("127.0.0.1"); //设置数据库的主机ip//设置数据库的用户名db.setUserName("root");//设置数据库的密码db.setPassword("123456"); //这个就是安装MySQL时设置的密码//设置数据库的名字db.setDatabaseName("aaa2");//打开数据库(已经安装过mysql驱动了)if(db.open==false){QMessageBox::warning(this,"waring",db.lastError.text);}# 二、使用MySQL数据库## (1)单语句执行首先创建一个QString对象sql,将要执行的语句写在 sql中,然后创建QSqlQuery类的对象query,调用其exec函数执行sql中的代码。
QString sql = "insert into student (id,name,age,math) values (1,'kaw',20,97)"; //书写想要执行的语句QSqlQuery query; //创建一个QSqlQuery对象 query.exec(sql); //执行mysql语句QSqlQuery query; //创建一个QSqlQuery对象如果操作失败
QSqlQuery query(db); // 指定操作的数据库对象 具体看构造函数吧(2)多语句执行在sql中,每条语句用分号隔开就可以同时执行多条语句了。下面同时对表格进行增加、删除和更新操作。
QString sql = "insert into student (id,name,age,math) values (13,'kaw',20,97);delete from student where id=2;update student set name='sdd',math=100 where id=10;";QSqlQuery query; //创建一个QSqlQuery对象query.exec(sql); //执行mysql语句在query.prepare中输入自己想要执行的语句,其中待输入的值用“?”代替,在这里“?”就是通配符。后面再用idList、nameList、ageList和mathList添加自己想要设置的值。注意,addBindValue绑定值的顺序需要与id、name、age、math的顺序一致。
QSqlQuery query;query.prepare("insert into student (id,name,age,math) values (?,?,?,?)"); //书写语句模型//添加绑定数据QVariantList idList; //创建一个id列表idList直接用自定义的名称来完成绑定,这时绑定顺序可以自己决定。
QSqlQuery query;query.prepare("insert into student (id,name,age,math) values (:id,:name,:age,:math)"); //:id之类的名字时自定义的 自己方便就好//添加绑定数据QVariantList idList; //创建一个id列表idList (4)查询要查询的表为:
value后的值可以是索引,也可以是列名。取出后需要将其转为对应的数据类型。
//查询操作QSqlQuery query;query.exec("select * from student");while(query.next){qDebug查询结果:
来源:小帆科技园地