在Qt中没有执行添加SQL代码的执行

时间:2019-04-20 16:15:48

标签: c++ sql qt

当我尝试通过INSERT INTO将数据添加到数据库时,它不是在添加数据。数据库已连接,但未执行

同一数据库在另一个窗口上已连接,我尝试断开它的连接,然后在新页面上连接它仍然显示相同的错误

void signup::on_pushButton_clicked()
{
    sql = QSqlDatabase::addDatabase("QSQLITE","SQLITE");
    sql.setDatabaseName("/E:/OOP Project/casinousers.db");
    if(sql.open()) {
       qDebug() << "Database connected";
    }
    else {
      qDebug() << "Error in connecting";
    }
    QString email,pass,name;
    int amount;
    email  = ui->lineEdit->text();
    pass = ui->lineEdit_2->text();
    name = ui->lineEdit_3->text();
    amount = ui->lineEdit_4->text().toInt();
    QSqlQuery *query = new QSqlQuery(sql);
    query->prepare("INSERT INTO Data(Email,Password,name,Amount)" "VALUES(':email',':pass',':name',:amount)");
    query->bindValue(":email",email);
    query->bindValue(":pass",pass);
    query->bindValue(":name",name);
    query->bindValue(":amount",amount);
    if(!query->exec()) {
        qDebug() <<" error";
    }
}

输出为“错误”-未添加数据

1 个答案:

答案 0 :(得分:2)

数据库已锁定。

我将其解锁,从而解决了问题。

我通过打印实际错误来了解这个问题

qDebug() << query->lastError();