C++ “数据库错误”;参数计数不匹配“;关于C++;

C++ “数据库错误”;参数计数不匹配“;关于C++;,c++,database,qt,qsqldatabase,C++,Database,Qt,Qsqldatabase,所以我在代码中遗漏了一些东西,但我无法理解这是什么。我试图将文本字段中的一些值输入到数据库中,但得到了文章名的错误 有人能帮忙吗? 我发布了iSeries代码和按钮代码。 提前谢谢 Database.cpp bool Database::insertStudent(Student &s) { bool success = false; QSqlQuery query(db); query.prepare("INSERT INTO student (name,lastname,sem

所以我在代码中遗漏了一些东西,但我无法理解这是什么。我试图将文本字段中的一些值输入到数据库中,但得到了文章名的错误

有人能帮忙吗? 我发布了iSeries代码和按钮代码。 提前谢谢

Database.cpp

bool    Database::insertStudent(Student &s)
{
bool success = false;
QSqlQuery query(db);
query.prepare("INSERT INTO student (name,lastname,semester,studentid) VALUES (:name,:lastname,:semester,:studentid)");
query.bindValue(":name", s.getname());
query.bindValue(":lastname",s.getlastname());
query.bindValue(":semester", s.getsemester());
query.bindValue(":studentid",s.getstudentid());
query.exec();
if(query.exec()) success = true;
else
{
        qDebug() << "Database error:  "
                 << query.lastError();
}
  return success;
}
表名是student,它有4个我用此代码创建的字段

Database::Database()
{
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("students.db");
    db.open();
    QSqlQuery q(db);
    q.exec(QString("create table if not exists student(")+
                        QString("id integer primary key autoincrement,")+
                        QString("name varchar(1024),lastname varchar(1024),semester integer,")+
                        QString("studentid integer)"));
}
student.cpp

#include "student.h"

Student::Student()
{
    name="";
    lastname="";
    studentid=0;
    semester=0;
}

Student::Student(QString n,QString l,int s,int p)
{
    name=n;
    lastname=l;
    semester=s;
    studentid=p;
}

QString Student::getname()
{
    return name;
}

QString Student::getlastname()
{
    return lastname;
}

int Student::getstudentid()
{
    return studentid;
}

int Student::getsemester()
{
    return semester;
}

QString Student::toString()
{
    return name+","+lastname+","+QString::number(semester)+","+QString::number(studentid);
}

错误不是问题,因为程序启动正确。问题是当我按下按钮将字段插入到表中时,我在应用程序输出上得到错误:数据库错误:QSQLRERROR(“,“参数计数不匹配”,”)另一个问题是create语句中studentid前面缺少逗号。我没有注意到Alex K。谢谢。插入错误仍然存在。完整的项目在这里:ufile.io/bds5tc您可以发布完整的错误堆栈吗?
#include "student.h"

Student::Student()
{
    name="";
    lastname="";
    studentid=0;
    semester=0;
}

Student::Student(QString n,QString l,int s,int p)
{
    name=n;
    lastname=l;
    semester=s;
    studentid=p;
}

QString Student::getname()
{
    return name;
}

QString Student::getlastname()
{
    return lastname;
}

int Student::getstudentid()
{
    return studentid;
}

int Student::getsemester()
{
    return semester;
}

QString Student::toString()
{
    return name+","+lastname+","+QString::number(semester)+","+QString::number(studentid);
}