How to write Sqlite DataBase in Qt

How to write Sqlite DataBase in Qt

本文关键字:in Qt DataBase Sqlite to write How      更新时间:2023-10-16

我使用此代码在Qt中创建SQlite数据库。现在我有两个问题:第一,我如何在表中添加新记录,第二,我如何检查表是否存在?

bool createConnection()
{
    QSqlDatabase db = QSqlDatabase::addDatabase("SQLITE");
    db.setHostName("Server");
    db.setDatabaseName("Message.DB");
    if (!db.open()) {
        QMessageBox::critical(0, QObject::tr("Database Error"),
                db.lastError().text());
        return false;
}

应该能够工作:

QSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE");
database.setDatabaseName("Message.DB");
if(database.open() == false) {
    // ... <- Error handling
    return false;
}
QSqlQuery sqlQuery(database);
bool inserted = sqlQuery.exec("INSERT INTO my_table (col1, col2) VALUES ('one', 'two')");
if(inserted == false) {
    // ... <- Error handling
}

不知道如何检查表是否存在,但要创建一个表,如果它还不存在,你可以做:

bool created = sqlQuery.exec("CREATE TABLE IF NOT EXISTS my_table(<column info>);");

您还应该创建一个查询,该查询将创建非空数据库并使用正确的变量名称(在您的代码中,您首先使用dbConnection,然后使用-db.