Qt - QSql Unable to fetch row, keine Abfrage einzufügen versuchen
Ich versuche, die Daten in eine Tabelle einfügen. Hier ist der code:
void AddContacts::saveContact() {
QString first_name = ui->lineFirstName->text();
QString last_name = ui->lineLastName->text();
QString street_address = ui->lineStreetAddress->text();
QString city = ui->lineCity->text();
QString state = ui->comboBoxState->currentText();
QString zip_code = ui->lineZip->text();
QString personal_email = ui->linePersonalEmail->text();
QString work_email = ui->lineWorkEmail->text();
QString home_phone = ui->lineHomePhone->text();
QString cellular_phone = ui->lineCellularPhone->text();
QString work_phone = ui->lineWorkPhone->text();
QString pager = ui->linePager->text();
QString facebook = ui->lineFacebook->text();
QString twitter = ui->lineTwitter->text();
QString notes = ui->textEditNotes->toPlainText();
//Insert into the database
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("db.db3");
db.open();
QSqlQuery qry;
QString query = "INSERT INTO (id, first_name, last_name, street_address, city, state, zip_code, personal_email, work_email, home_phone, cellular_phone, work_phone, pager, facebook, twitter, notes) VALUES('null','" + first_name + "','" + last_name +"','" + street_address + "','" + city + "','" + state + "','" + zip_code + "','" + personal_email + "','" + work_email + "','" + home_phone + "','" + cellular_phone + "','" + work_phone + "','" + pager + "','" + facebook + "','" + twitter + "', '" + notes + "')";
qry.prepare(query);
if(!qry.exec()) {
qDebug() << qry.lastError();
}
else {
qDebug() << "Success!";
}
Hier ist, was ich verwendet, um die Tabelle zu erstellen:
CREATE TABLE contacts (
id int primary key,
first_name varchar(20),
last_name varchar(20),
street_address text,
city varchar(30),
state varchar(20),
zip_code varchar(10),
personal_email varchar(40),
work_email varchar(40),
home_phone varchar(12),
cellular_phone varchar(12),
work_phone varchar(12),
pager varchar(12),
facebook text,
twitter varchar(20),
notes text);
Ich bin immer diese Fehlermeldung:
QSqlError(-1, "Unable to fetch row", "Keine Abfrage")
Ich bin mir nicht sicher, was ich tun könnte falsch. Können Sie nichts finden?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nicht, legen Sie eine Zeichenfolge
'null'
als Wert für die Spalteid
. Verwenden Sie eine gültige Ganzzahl statt. Wenn Sie wirklich wollen, die erste Zeile, um eineNULL
id, SQL-Anweisung sieht wie folgt aus... VALUES (NULL, ...
.Dein code ist sehr anfällig für Fehler, da Sie nicht entkommen Apostrophe in Ihrem Eingang. Wenn einige Ihrer text-Felder enthalten eine
'
Ihre SQL-Anweisung fehl. Sie sollten binden Sie Ihre Spalten den Variablen. Dies ist von der Qt-Referenzen und Sie sollten diese Methode verwenden:Hallo Freund ich glaube, Sie vermissen Ihren Tabellennamen in der Abfrage.
setze ich Fragezeichen in diesem Ort