在当前项目中我需要将客户数据存入数据库,而且该项目面对的客户群体很小,又因为该软件未来可能会被多次移植,维护和安装越容易越好,所以就想到使用轻量级数据库sqlite,那么怎么用呢?
step1:安装sqlite
搜索sqlite Expert 然后下载:
安装如下:
step2:建立自己的数据库和表
1、建立数据库
2、建立表
step3:连接数据库
- - 什么时候连库?
应用程序界面一打开,无论是登录系统,还是信息的增删改查,都需要连接数据库。所以,我选择页面初始化后,就加载数据库。
- - 怎么打开数据库?
def opendb(self):
self.db = QtSql.QSqlDatabase.addDatabase('QSQLITE') # 加载数据库驱动
self.db.setDatabaseName('shujuku.db') # 打开数据库,库名可以带路径
if self.db.open():
print('打开数据库成功!')
else:
errorTip = self.db.lastError().text()
QMessageBox.warning(title='提示', text=errorTip)
return
- - 怎么插入记录?
方法1: 直接使用查询语句
query = QSqlQuery(self.DB)
query.prepare("'INSERT INTO employee (empNo,name,Gender) Values(:c1,:c2,:c3)''')
query.bindValue('':c1'', selef.ui.lineEdit1.text())
query.bindValue('':c2'', selef.ui.lineEdit2.text())
query.bindValue('':c3'', selef.ui.lineEdit3.text())
query.exec()
方法2:修改数据模型
self.tbM = QtSql.QSqlTableModel()
self.tbM.setTable('employy')
self.tbM.setEditStrategy(QtSql.QSqlTableModel.OnFieldChange) # 允许字段更改
self.tbM.insertRow(lastRow, QModelIndex())
lastRow = self.tbM.rowCount()
self.tbM.insertRow(lastRow, QModelIndex())
curRec = self.tbM.record() # 只有表头
curRec.setValue('cust_id', lastRow+1)
curRec.setValue('cust_code', 'sfjy')
curRec.setValue('cust_name', signalCust[0])
self.tbM.setRecord(lastRow, curRec)