我尝试连接到我的主目录C:\Users\mahmoud\trade.db
我的代码如下所示:
void MainWindow::initializeDatabase()
{
QFileInfo db_path(QDir::homePath() + "/trade.db");
db = QSqlDatabase::addDatabase("QSQLITE", db_path.absoluteFilePath());
if(!db.open() || !db_path.exists()) {
this->showMessage("Database not open or does not exist.");
qApp->exit(1);
}
}
我使用的是Qt 5,我确保通过运行
来加载QSQLite驱动程序qDebug() << QSqlDatabase::drivers();
我查询的表格确实存在于我连接的数据库中,我已经使用本地SQLite客户端进行了检查。
编辑:表格的架构:
CREATE TABLE `merchants` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`merchant_name` TEXT NOT NULL,
`phone` TEXT,
`address` TEXT,
`notes` TEXT
);
我使用select * from merchants;
和QLineEdit
QPushButton
按钮点击插槽的代码如下:
void MainWindow::showMessage(QString str)
{
QMessageBox mb;
mb.setText(str);
mb.exec();
}
void MainWindow::on_pushButton_2_clicked()
{
if (open){
QSqlQuery query(db);
bool done = query.exec(ui->lineEdit->text());
if(done) {
this->showMessage("OK!");
} else {
QErrorMessage qerr(this);
qerr.showMessage(query.lastError().text());
qerr.exec();
}
} else {
this->showMessage("Database not open.");
}
}
这就是我得到的错误: