导入使用库
from PyQt5 import QtSql
from PyQt5.QtSql import QSqlQuery
初始化数据库
database = QtSql.QSqlDatabase.addDatabase('QSQLITE')
database.setDatabaseName('database/student.db')
database.open()
# 数据库操作
query = QSqlQuery()
sql_code ='create table student (id INTEGER PRIMARY KEY autoincrement ,Name varchar(30),Age varchar(30),Gender varchar(30),Grade varchar(30))'
if not query.exec_(sql_code):
print( query.lastError().text())
else:
print('创建成功')
执行sql语句
sql_c = 'select Name,Age,Gender,Grade from student'
query.exec(sql_c)
数据查询
获取下一个数据
query.next()
跳转到数据最后
query.last()
跳转到数据开始
query.first()
获取当前数据下标
query.at()
sql_c = 'select Name,Age,Gender,Grade from student'
if query.exec(sql_c):
self.tableWidget.clearContents()
if not query.next():
return
query.last() # 跳转到最好
self.tableWidget.setRowCount(query.at()+1) # 加一 为数据数量
query.first()# 计算过数量后 从新跳转到第一行
i = 0
self.tableWidget.setItem(i, 0, QTableWidgetItem(query.value(0)))
self.tableWidget.setItem(i, 1, QTableWidgetItem(query.value(1)))
self.tableWidget.setItem(i, 2, QTableWidgetItem(query.value(2)))
self.tableWidget.setItem(i, 3, QTableWidgetItem(query.value(3)))
i +=1
while query.next():
self.tableWidget.setItem(i, 0, QTableWidgetItem(query.value(0)))
self.tableWidget.setItem(i, 1, QTableWidgetItem(query.value(1)))
self.tableWidget.setItem(i, 2, QTableWidgetItem(query.value(2)))
self.tableWidget.setItem(i, 3, QTableWidgetItem(query.value(3)))
i +=1
数据插入
#插入数据
sql_code = 'insert into student (Name,Age,Gender,Grade) values("%s", "%s","%s", "%s")'%(Name,Age,Gender,Grade)
if not query.exec_(sql_code):
QMessageBox.warning(self, '失败', '数据库错误!'+query.lastError().text(), QMessageBox.Ok)
return
更新数据
#插入数据
sql_code = 'update student set Age="%s",Gender="%s",Grade="%s" where Name="%s"'%(Age,Gender,Grade,Name)
if not query.exec_(sql_code):
QMessageBox.warning(self, '失败', '数据库错误!'+query.lastError().text(), QMessageBox.Ok)
return
删除数据
sql_code ='DELETE FROM student WHERE Name="%s"'%(Name)
if query.exec(sql_code):
return
群 686070107