【问题标题】:How to use for loop to insert row into QSqltablemodel from a list?如何使用 for 循环将行从列表中插入 QSqltablemodel?
【发布时间】:2020-12-04 05:51:34
【问题描述】:

以下是数据库模型:

db = QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('book.db')
db.open()

self.model = QtSql.QSqlTableModel(self)
self.model.setTable("card")
self.model.select()

例如:

a = "name"
b = 30
c = "M"
data_row = [a, b, c]

r = self.model.record()
r.setValue("name", "name")
r.setValue("age", 30)
r.setValue("gender", "M")
self.model.insertRecord(-1, r)
self.model.select()

数据库有 3 列,分别是 'name'、'age'、'gender'。

我的问题是如何使用带有 for-loop 的 QSqlTableModel 将行插入到 Sqlite 表中?

【问题讨论】:

    标签: python-3.x sqlite for-loop qsqltablemodel


    【解决方案1】:

    我尝试了下面的代码,这对我有用: 使用“for-loop”计算列数和 zip() 函数进行并行迭代。

    a = "name"
    b = 30
    c = "M"
    data_row = [a, b, c]
    
    columns = []
    for col in range(self.model.columnCount()):
        columns.append(col)
    
    r = self.model.record()
    for col, rec in zip(columns, data_row):
        r.setValue(col, rec)
    
    self.model.insertRecord(-1, r)
    self.model.select()
    

    【讨论】:

    猜你喜欢
    • 2020-12-03
    • 2018-04-29
    • 2014-09-17
    • 1970-01-01
    • 2015-02-13
    • 1970-01-01
    • 2020-02-08
    • 2019-05-01
    • 1970-01-01
    相关资源
    最近更新 更多