QSqlQuery :: exec:尝试在新数据库中创建表时数据库未打开

问题描述

我正在PyQt5中创建数据库GUI,并且得到了QSqlQuery::exec: database not open,我已经查看了类似问题的答案,但没有帮助。

self.db.setDatabaseName('demodatabase.db')
    
self.query = QtSql.QSqlQuery(self.db)
self.query.exec_("CREATE TABLE new1 (id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL,name VARCHAR(100))")

解决方法

该错误消息非常有用:您必须打开连接:

self.db.setDatabaseName('demodatabase.db')
if not self.db.open():
    print(self.db.lastError().text()) 
self.query = QtSql.QSqlQuery(self.db)
self.query.exec_("CREATE TABLE new1 (id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL,name VARCHAR(100))")

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...