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