【发布时间】:2019-08-16 04:33:33
【问题描述】:
我创建了一个数据库,然后我关闭并最终使用 os.remove 将其删除,但是如果我尝试使用同一行创建相同的数据库,然后插入一个新表,编译器会说我 无法操作一个封闭的数据库。如果我添加一个 db.open(),编译器会说 它没有 open 属性。
我尝试在另一个 def 上添加相同的连接线,但是当很明显我删除它然后创建一个新数据库时,我仍然无法对“关闭”数据库进行操作。我也用pyqt5,所以我写了“QMainWindow”
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow
from PyQt5 import uic
import sqlite3
import os
db = sqlite3.connect("prueba.db")
puntero = db.cursor()
#ayuda a este pobre noob que no sabe sqlite3 ni como funciona los argumentos dentro de un def()de python
class Ventana(QMainWindow):
def __init__(self):
QMainWindow.__init__(self)
uic.loadUi("base.ui",self)
self.btn_Tabla.clicked.connect(self.createTabla)
self.btn_Insertar.clicked.connect(self.createDatos)
self.btn_Borrar.clicked.connect(self.deleteBase)
self.btn_Crear.clicked.connect(self.createBase)
def createBase(self):
db = sqlite3.connect("prueba.db")
puntero = db.cursor()
self.txt_Base.setText("database created")
def createDatos(self):
x=1
def createTabla(self):
puntero.execute('''
CREATE TABLE Usuarios(id INTEGER PRIMARY KEY, Nombre TEXT,
Telefono TEXT, Correo TEXT unique, Contraseña TEXT)
''')
db.commit()
self.txt_Base.setText("tables inserted")
def deleteBase(self):
db.close()
os.remove("prueba.db")
self.txt_Base.setText("deleted database")
app = QApplication(sys.argv)
_ventana = Ventana()
_ventana.show()
app.exec_()
【问题讨论】:
-
这些方法是否在您刚刚未粘贴到问题中的类中?
-
您提供的代码不会产生您描述的错误。请提供实际产生错误的代码。
-
在发生的地方添加了完整的代码
标签: python python-3.x sqlite pyqt pyqt5