如何在Qt中创建SQLite数据库

How to create a SQLite database in Qt

本文关键字:创建 SQLite 数据库 Qt      更新时间:2023-10-16

我正在尝试在Qt中创建一个SQLite数据库。这是我的代码:

QDir databasePath;
QString path = databasePath.currentPath()+"myDb.db";
QSqlDatabase dbConnection = QSqlDatabase:addDatabase("QSQLITE");
db.setDatabaseName(path);
db.open();

运行代码时没有错误,但我在定义的路径中找不到我创建的数据库。这实际上是创建数据库还是只是执行一些初始化?

如果它不创建数据库,那么如何在应用程序本身中创建数据库?(我不是在谈论插入。

您还应该创建查询,该查询将创建不为空的数据库并使用正确的变量名称(在您的代码中,您首先使用dbConnection,然后使用db。例如:

QString path = "path";
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");//not dbConnection
db.setDatabaseName(path);
db.open();
QSqlQuery query;
query.exec("create table person "
          "(id integer primary key, "
          "firstname varchar(20), "
          "lastname varchar(30), "
          "age integer)");

他的错误是,

QDir databasePath;
QString path = databasePath.currentPath()+"/myDb.db"; // Not "myDb.db"
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(path);
db.open();
QSqlQuery query; // And he should insert some data, as the answer above mentioned
query.exec("create table person "
          "(id integer primary key, "
          "firstname varchar(20), "
          "lastname varchar(30), "
          "age integer)");

并且数据库文件myDb.db是在build目录中创建的,而不是在他的source代码目录中创建的。