query_exec(SELECT * FROM mytable的)失败的pyqt5

问题描述:

我有一个像下面query_exec(SELECT * FROM mytable的)失败的pyqt5

def updateExpenseEntryToDb (self): 
    self.day = self.line_edit1.text() 
    self.category = self.line_edit2.text() 
    self.amount = self.line_edit3.text() 

    db = QSqlDatabase.addDatabase('QSQLITE') 
    db.setDatabaseName('expenses.db') 
    db.open() 
    query = QSqlQuery() 
    query.exec_("create table expense(date DATE primary key, " 
    "category varchar(20), amount varchar(20))") 
    query.exec_("insert into expense (date,category,amount) values('%s','%s','%s')" % (self.day, self.category, self.amount)) 
    db.close() 

    db1 = QSqlDatabase.addDatabase('QSQLITE') 
    db1.setDatabaseName('expenses.db') 
    db1.open() 
    query1 = QSqlQuery() 
    query1.exec_("SELECT date, category, amount FROM expenses.expense") 

    while (query1.next()): 
     extractedDate = query1.value(0).toString() 
     extractedcategory = query1.value(1).toString() 
     extractedAmount = query1.value(2).toString() 
     self.line_edit1.setText(extractedDate) 
     self.line_edit2.setText(extractedcategory) 
     self.line_edit3.setText(extractedAmount)   
    db1.close() 

插入值的函数到数据库的作品,但不是从数据库信息的检索。我究竟做错了什么 ?似乎选择查询并没有检索任何东西

query.first()之前while (query1.next()):但是,第一行将不会被使用。

更好:

query.first() 
while query.isValid(): 
    # Your Code 
    query.next()