qt 在子类中无法添加数据到数据库中_以使用QSqlQuery向数据库中插入数据为例,做一个小结...
时间: 2024-03-07 22:49:27 浏览: 18
在 Qt 中使用 QSqlQuery 向数据库中插入数据,可以按照以下步骤进行:
1. 打开数据库连接:
```c++
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("localhost");
db.setDatabaseName("test");
db.setUserName("root");
db.setPassword("123456");
if (!db.open()) {
qDebug() << "Failed to connect to database.";
return;
}
```
其中,QMYSQL 为数据库类型,localhost 为数据库所在的主机名,test 为数据库名称,root 为数据库用户名,123456 为数据库用户密码。
2. 编写 SQL 插入语句:
```c++
QString sql = "INSERT INTO student(name, age, gender) VALUES(:name, :age, :gender)";
```
其中,student 为表名,name、age、gender 为表中的列名。
3. 创建 QSqlQuery 对象并绑定参数:
```c++
QSqlQuery query;
query.prepare(sql);
query.bindValue(":name", "Tom");
query.bindValue(":age", 18);
query.bindValue(":gender", "male");
```
其中,":name"、":age"、":gender" 为 SQL 语句中的参数占位符,可以使用 bindValue 方法绑定具体的值。
4. 执行 SQL 语句并判断是否执行成功:
```c++
if (query.exec()) {
qDebug() << "Insert success.";
} else {
qDebug() << query.lastError().text();
}
```
其中,exec 方法用于执行 SQL 语句,lastError 方法用于获取最后一次执行 SQL 语句时发生的错误信息。
5. 关闭数据库连接:
```c++
db.close();
```
以上就是使用 QSqlQuery 向数据库中插入数据的基本步骤。如果无法添加数据到数据库中,可以检查数据库连接是否成功、SQL 语句是否正确、参数绑定是否正确等方面的问题。