当我第一次尝试使用我的代码时 它是
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QMessageBox"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPixmap pix("C:/Users/AMR.EngAmr/Downloads/1561136.jpg");
ui->label_pic->setPixmap(pix);
if(!connOpen())
ui->label_9->setText("فشل الاتصال بقاعدة البيانات");
else
ui->label_9->setText("تم الاتصال بقاعدة البيانات ");
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QString Name,period,group,Weight,Notes,Notes2,Notes3,pressure;
Name=ui->lineEdit_name->text();
period=ui->lineEdit_2->text();
group=ui->lineEdit_group->text();
Weight=ui->lineEdit_weight->text();
Notes2=ui->lineEdit_notes2->text();
pressure=ui->lineEdit_presure->text();
Notes=ui->lineEdit_notes->text();
Notes3=ui->lineEdit_notes3->text();
if(!connOpen()){
qDebug()<<"Faield to open the database";
return;
}
connOpen();
QSqlQuery qry;
qry.prepare("insert into Patients (Name,period,group,Weight,Notes2,pressure,Notes,Notes3 ) values('"+Name+"','"+period+"''"+group+"','"+Weight+"','"+Notes2+"','"+pressure+"','"+Notes+"''"+Notes3+"')");
if(qry.exec())
{
QMessageBox::information(this,tr("Save"),tr("Saved"));
connClose();
}
else
{
QMessageBox::information(this,tr("error::"),qry.lastError().text());
}
}
我收到错误没有查询无法获取行 我尝试了一个解决方案,我的代码是
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include "QMessageBox"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QPixmap pix("C:/Users/AMR.EngAmr/Downloads/1561136.jpg");
ui->label_pic->setPixmap(pix);
if(!connOpen())
ui->label_9->setText("فشل الاتصال بقاعدة البيانات");
else
ui->label_9->setText("تم الاتصال بقاعدة البيانات ");
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
QString Name,period,group,Weight,Notes,Notes2,Notes3,pressure;
Name=ui->lineEdit_name->text();
period=ui->lineEdit_2->text();
group=ui->lineEdit_group->text();
Weight=ui->lineEdit_weight->text();
Notes2=ui->lineEdit_notes2->text();
pressure=ui->lineEdit_presure->text();
Notes=ui->lineEdit_notes->text();
Notes3=ui->lineEdit_notes3->text();
if(!connOpen()){
qDebug()<<"Faield to open the database";
return;
}
connOpen();
QSqlQuery qry;
qry.prepare("insert into Patients (:Name,:period,:group,:Weight,:Notes2,:pressure,:Notes,:Notes3 ) values('"+Name+"','"+period+"''"+group+"','"+Weight+"','"+Notes2+"','"+pressure+"','"+Notes+"''"+Notes3+"')");
qry.bindValue(":Name", Name);
qry.bindValue(":period", period);
qry.bindValue(":group", group);
qry.bindValue(":Weight", Weight);
qry.bindValue(":Notes2", Notes2);
qry.bindValue(":pressure", pressure);
qry.bindValue(":Notes", Notes);
qry.bindValue(":Note3", Notes3);
if(qry.exec())
{
QMessageBox::information(this,tr("Save"),tr("Saved"));
connClose();
}
else
{
QMessageBox::information(this,tr("error::"),qry.lastError().text());
}
}
我得到了错误 参数计数不匹配 我必须在两天内完成它的问题
答案 0 :(得分:0)
看起来你正在混淆你的价值绑定。当您使用它时,您不会将值放入查询中(绑定值的目的是避免这种情况!)。如果列名正确,这可能有效:
qry.prepare("insert into Patients "
"(Name,period,group,Weight,Notes2,pressure,Notes,Notes3) "
"values(:Name,:period,:group,:Weight,:Notes2,:pressure,:Notes,:Notes3)");
(关于分割这样的字符串的注意事项,您可能不熟悉这些字符串:在C和C ++中编写"foo" "bar"
与"foobar"
相同。)
此外,documentation is your friend。 Qt主要有很好的文档,在这种情况下,似乎完全涵盖了你所要求的内容。