У меня есть простая база данных sqlite3, содержащая пару имен и идентификаторов.Я хочу получить имя, если указан идентификатор.Если я запускаю свою программу, я получаю следующую ошибку:
ОШИБКА: «ОШИБКА:« Нет запроса, невозможно получить строку »« ВЫБРАТЬ имя ИЗ ИМЕНИ_таблицы, ГДЕ ИД =% 1) »«
имя базы данных "dataname", а таблица, в которой находятся данные, "name_table". Ниже приведен мой код:
QSqlDatabase db;
mInputText = ui->lineEdit->text();
const QString DRIVER("QSQLITE");
if(QSqlDatabase::isDriverAvailable(DRIVER)){
db = QSqlDatabase::addDatabase(DRIVER);
}
db.setHostName("localhost");
db.setDatabaseName("dataname");
db.open();
if(!db.open()){
qWarning() << "ERROR: " << db.lastError();
}
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
mInputText = ui->lineEdit->text();
QSqlQuery query;
query.prepare("SELECT name FROM name_table WHERE id = %1");
query.bindValue("%1", mInputText);
if(!query.exec())
qWarning() << "ERROR: " << query.lastError().text();
qDebug() << query.executedQuery();
if(query.first())
ui->mOutputText->setText(query.value(0).toString());
else
ui->mOutputText->setText("not found");
}
Может кто-нибудь помочь мне найти мою ошибку.новый для sql.Я думаю, что моей ошибкой может быть ".setHostName" или значение привязки запроса, но я все перепробовал и не могу заставить его работать. Заранее спасибо!
С уважением