我正在使用此代码在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>);");

07-28 01:34
查看更多