qsqlite没有这样的表

时间:2016-06-30 16:45:01

标签: c++ qt sqlite qt5

我尝试连接到我的主目录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.");
    }

}

这就是我得到的错误:

error

0 个答案:

没有答案