如何在Qt中创建一个SQLite数据库

How to create a SQLite database in Qt

我正在尝试在 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 代码目录中。