sqlite3.OperationalError: no such column

cuquan4610 2017-07-25 04:10:00
想获得输入进Lineedit的数据然后保存到我之前创建的数据库中,一直提示sqlite3.OperationalError: no such column
import sys
from PyQt5 import QtCore, QtGui, QtWidgets
import sqlite3

class Ui_Insert(object):
def setupUi(self, Insert):
Insert.setObjectName("Insert")
Insert.setWindowModality(QtCore.Qt.NonModal)
Insert.resize(400, 300)
Insert.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
Insert.setAutoFillBackground(False)
self.verticalLayoutWidget = QtWidgets.QWidget(Insert)
self.verticalLayoutWidget.setGeometry(QtCore.QRect(30, 30, 51, 31))
self.verticalLayoutWidget.setObjectName("verticalLayoutWidget")
self.verticalLayout = QtWidgets.QVBoxLayout(self.verticalLayoutWidget)
self.verticalLayout.setContentsMargins(0, 0, 0, 0)
self.verticalLayout.setObjectName("verticalLayout")
self.label = QtWidgets.QLabel(self.verticalLayoutWidget)
self.label.setObjectName("label")
self.verticalLayout.addWidget(self.label)
self.verticalLayoutWidget_2 = QtWidgets.QWidget(Insert)
self.verticalLayoutWidget_2.setGeometry(QtCore.QRect(20, 190, 160, 80))
self.verticalLayoutWidget_2.setObjectName("verticalLayoutWidget_2")
self.verticalLayout_2 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_2)
self.verticalLayout_2.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_2.setObjectName("verticalLayout_2")
self.pushButton = QtWidgets.QPushButton(self.verticalLayoutWidget_2)
self.pushButton.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
self.pushButton.setCheckable(False)
self.pushButton.setChecked(False)
self.pushButton.setAutoRepeat(False)
self.pushButton.setAutoExclusive(False)
self.pushButton.setAutoDefault(False)
self.pushButton.setDefault(False)
self.pushButton.setFlat(False)
self.pushButton.setObjectName("pushButton")
self.verticalLayout_2.addWidget(self.pushButton)
self.verticalLayoutWidget_4 = QtWidgets.QWidget(Insert)
self.verticalLayoutWidget_4.setGeometry(QtCore.QRect(200, 190, 160, 80))
self.verticalLayoutWidget_4.setObjectName("verticalLayoutWidget_4")
self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_4)
self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_4.setObjectName("verticalLayout_4")
self.pushButton_2 = QtWidgets.QPushButton(self.verticalLayoutWidget_4)
self.pushButton_2.setObjectName("pushButton_2")
self.verticalLayout_4.addWidget(self.pushButton_2)
self.verticalLayoutWidget_3 = QtWidgets.QWidget(Insert)
self.verticalLayoutWidget_3.setGeometry(QtCore.QRect(30, 90, 51, 31))
self.verticalLayoutWidget_3.setObjectName("verticalLayoutWidget_3")
self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_3)
self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_3.setObjectName("verticalLayout_3")
self.label_2 = QtWidgets.QLabel(self.verticalLayoutWidget_3)
self.label_2.setObjectName("label_2")
self.verticalLayout_3.addWidget(self.label_2)
self.verticalLayoutWidget_5 = QtWidgets.QWidget(Insert)
self.verticalLayoutWidget_5.setGeometry(QtCore.QRect(30, 150, 341, 21))
self.verticalLayoutWidget_5.setObjectName("verticalLayoutWidget_5")
self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_5)
self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_5.setObjectName("verticalLayout_5")
self.radioButton = QtWidgets.QRadioButton(self.verticalLayoutWidget_5)
self.radioButton.setObjectName("radioButton")
self.verticalLayout_5.addWidget(self.radioButton)
self.verticalLayoutWidget_6 = QtWidgets.QWidget(Insert)
self.verticalLayoutWidget_6.setGeometry(QtCore.QRect(90, 30, 281, 31))
self.verticalLayoutWidget_6.setObjectName("verticalLayoutWidget_6")
self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_6)
self.verticalLayout_6.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_6.setObjectName("verticalLayout_6")
self.lineEdit = QtWidgets.QLineEdit(self.verticalLayoutWidget_6)
self.lineEdit.setObjectName("lineEdit")
self.verticalLayout_6.addWidget(self.lineEdit)
self.verticalLayoutWidget_7 = QtWidgets.QWidget(Insert)
self.verticalLayoutWidget_7.setGeometry(QtCore.QRect(89, 90, 281, 31))
self.verticalLayoutWidget_7.setObjectName("verticalLayoutWidget_7")
self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.verticalLayoutWidget_7)
self.verticalLayout_7.setContentsMargins(0, 0, 0, 0)
self.verticalLayout_7.setObjectName("verticalLayout_7")
self.lineEdit_2 = QtWidgets.QLineEdit(self.verticalLayoutWidget_7)
self.lineEdit_2.setContextMenuPolicy(QtCore.Qt.DefaultContextMenu)
self.lineEdit_2.setAcceptDrops(True)
self.lineEdit_2.setMaxLength(8)
self.lineEdit_2.setEchoMode(QtWidgets.QLineEdit.Normal)
self.lineEdit_2.setDragEnabled(False)
self.lineEdit_2.setReadOnly(False)
self.lineEdit_2.setClearButtonEnabled(False)
self.lineEdit_2.setObjectName("lineEdit_2")
self.verticalLayout_7.addWidget(self.lineEdit_2)
self.retranslateUi(Insert)
self.pushButton_2.clicked.connect(Insert.close)
QtCore.QMetaObject.connectSlotsByName(Insert)
self.pushButton.clicked.connect(self.getdata)
Insert.show()

def getdata(self,Insert):
user_name=str(self.lineEdit.text())
user_password=str(self.lineEdit_2.text())
conn = sqlite3.connect('test.db')
print ("Opened database successfully")
conn.execute("INSERT INTO USER (NAME,Password) \
VALUES (user_name, user_password)")
conn.commit()
print ("Records created successfully")
conn.close()

def retranslateUi(self, Insert):
_translate = QtCore.QCoreApplication.translate
Insert.setWindowTitle(_translate("Insert", "Form"))
self.label.setText(_translate("Insert", "用户名:"))
self.pushButton.setText(_translate("Insert", "确认"))
self.pushButton_2.setText(_translate("Insert", "取消"))
self.label_2.setText(_translate("Insert", "密码:"))
self.radioButton.setText(_translate("Insert", "同意安全协议"))


if __name__ == "__main__":
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_Insert()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())
...全文
1876 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
u014628226 2018-07-17
  • 打赏
  • 举报
回复
你这是参数中有字符串,格式化之后字符串的引号导致sql语句出错,这种情况要conn.execute("INSERT INTO USER (NAME,Password)VALUES ('%s', '%s')"%(user_name,user_password))
cuquan4610 2017-07-26
  • 打赏
  • 举报
回复
感觉是insert into value 中的参数设置的不对,不知道怎么引入变量
cuquan4610 2017-07-26
  • 打赏
  • 举报
回复
import sqlite3 import sys conn = sqlite3.connect('test.db') print ("Opened database successfully") conn.execute('''CREATE TABLE USER (NAME TEXT NOT NULL, Password INT NOT NULL);''') conn.close() print("Table created successfully") 这是我的表类型
  • 打赏
  • 举报
回复
是不是数据库中该表没有对应插入的字段?

16,173

社区成员

发帖
与我相关
我的任务
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
  • Qt
  • 亭台六七座
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧