增加 void LogWidget::on_btnxg_clicked() { QSqlQuery query; QString sql=QString("insert into student(name,password) values('%2',%3)").arg(ui->lineEdit->text()).arg(ui->lineEdit_3->text()); if(QMessageBox::question( this,"增加","确定增加吗?",QMessageBox::Yes|QMessageBox::No)==QMessageBox::No){ return; } if(query.exec(sql)) { qDebug()<<"添加成功"; } else { qDebug()<<"添加失败,用户已存在"<<query.lastError().text(); } } 删除 void LogWidget::on_btnsc_clicked() { QSqlQuery query; QString name = ui->lineEdit_2->text(); QString sql = QString("delete from student where name='%1'").arg(name); if(QMessageBox::question( this,"删除","确定删除吗?",QMessageBox::Yes|QMessageBox::No)==QMessageBox::No){ return; } if(query.exec(sql)){ qDebug() << "删除成功"; } else{ qDebug() <<"删除失败"<<query.lastError().text(); } }
时间: 2024-04-04 21:29:19 浏览: 135
这两段代码都是使用了Qt的数据库模块来实现对数据库表"student"的增删操作。第一段代码是在点击修改按钮时将用户输入的账号和密码插入到数据库表中,使用了预处理语句和绑定值的方式,可以有效地防止SQL注入攻击。在执行插入操作前,还会弹出一个确认框,让用户确认是否进行插入操作。
第二段代码是在点击删除按钮时从数据库表中删除用户输入的指定账号的记录,也使用了预处理语句和绑定值的方式,可以有效地防止SQL注入攻击。在执行删除操作前,同样会弹出一个确认框,让用户确认是否进行删除操作。如果操作成功,则会在控制台输出"删除成功",否则输出"删除失败"。
相关问题
void administrator::on_pushButton_5_clicked() { db1 = QSqlDatabase::addDatabase("QSQLITE"); db1.setDatabaseName("user.db"); QSqlQuery sql_query(db1); QString delete_sql = "DELETE FROM userInfo WHERE username = ?"; sql_query.prepare(delete_sql); sql_query.addBindValue(ui->lineEdit_2->text()); if (!sql_query.exec()) { qDebug() << sql_query.lastError(); } else { qDebug() << "deleted!"; } } 提示QSqlError("", "Parameter count mismatch", "")
这个错误通常是由于绑定参数的数量与SQL查询中的参数数量不匹配引起的。在你的代码中,你使用了一个参数 `?` 来绑定 `username` 的值,但是在实际执行查询时,没有为这个参数提供值,导致参数数量不匹配。
要解决这个问题,你需要确保你为 `username` 参数提供了正确的值。你可以检查一下 `ui->lineEdit_2->text()` 的值是否为空,或者是否正确地设置了该值。另外,你还可以通过在 `if` 语句中打印出错误信息来进一步调试和定位问题,例如:
```cpp
if (!sql_query.exec())
{
qDebug() << "Error executing query:" << sql_query.lastError().text();
}
```
这样可以获取更详细的错误信息,帮助你定位并解决问题。
void MainWindow::on_pushButton_login_clicked() { int idFlag = 0; login * l = new login; QSqlQuery query; QString sql = QString("select * from message"); if(query.exec(sql)) { qDebug() << "查找成功"; } else { qDebug() << "查找失败:"; } while(query.next()){ if(query.value(0) == ui->lineEdit_user->text() && query.value(1) == ui->lineEdit_password->text()){ idFlag = 1; } qDebug() << query.value(0) << "\t" << query.value(1); } if(idFlag == 1){ qDebug() << "ID和密码均正确,登陆"; this->close(); l->show(); l->move(1600, 65); } else{ qDebug() << "ID或密码错误"; QMessageBox::critical(this, "error", "ID或密码错误");
这段代码是一个 Qt 应用程序中的槽函数,当用户点击登录按钮时会触发该函数。该函数会创建一个名为 `l` 的 `login` 对象,然后查询名为 `message` 的数据库表格中是否有与用户输入的用户名和密码匹配的数据。如果查询成功,就在控制台输出“查找成功”,然后遍历所有查询结果,如果有匹配的用户名和密码,就将 `idFlag` 标记为 1。最后,如果 `idFlag` 的值为 1,就在控制台输出“ID和密码均正确,登陆”并显示 `l` 对象的界面,否则就在控制台输出“ID或密码错误”并弹出一个消息框提示用户输入错误。
阅读全文