# 创建一个名为“庫存明細”的表格,如果不存在的话 cursor.execute('''CREATE TABLE IF NOT EXISTS {} (id INTEGER PRIMARY KEY, 點檢内容 INTEGER, 點檢狀態 INTEGER, 點檢日期 INTEGER, 點檢時間 INTEGER, 點檢人 INTEGER, 點檢綫別 INTEGER, 點檢班別 INTEGER, 機種 INTEGER, 點檢表名稱 INTEGER, IP地址 INTEGER, 用戶名 INTEGER )'''.format(data41)) # 提交更改(必须) conn.commit() data4 = self.la # 获取工作表的最后一行 last_row = cursor.execute("SELECT MAX(id) FROM {}".format(data41)).fetchone()[0] # 将文本框中的内容按行写入表格的第一列 for i, line in enumerate(text.split("\n")): if line.strip() != "": # 第一行不写入 if i != 0: # 执行SQL插入语句,将数据写入表格的第一列(不写入ID字段) cursor.execute("INSERT INTO {} (點檢内容) VALUES (?)".format(data41), (line.strip(),)) # 将下拉输入框中的内容按行插入表格的后续列 for i, value in enumerate(combobox_values): # 执行SQL插入语句,将数据插入表格的后续列 cursor.execute( "INSERT INTO {} (點檢狀態, 點檢日期, 點檢時間, 點檢人, 點檢綫別, 點檢班別, 機種, 點檢表名稱, IP地址, 用戶名) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)".format( data41), (value, data1, data2, data3, data4, data5, data6, sheet_name, ip_address, username))將這段代碼中第2個循環,修改為在第3列内容是NULL的行開始插入數據
时间: 2024-02-10 20:25:21 浏览: 21
要在第3列内容为空的行开始插入数据,你可以使用INSERT语句和SELECT子句来实现。
以下是修改后的代码示例:
```python
# 找到第3列内容为空的行号
cursor.execute("SELECT COUNT(*) FROM {} WHERE 列3 IS NULL".format(data41))
row_number = cursor.fetchone()[0] + 1
# 将下拉输入框中的内容按行插入表格的后续列
for i, value in enumerate(combobox_values):
# 执行SQL插入语句,在第3列内容为空的行之后插入新数据
cursor.execute(
"INSERT INTO {} (點檢狀態, 點檢日期, 點檢時間, 點檢人, 點檢綫別, 點檢班別, 機種, 點檢表名稱, IP地址, 用戶名) SELECT ?, ?, ?, ?, ?, ?, ?, ?, ?, ? WHERE NOT EXISTS (SELECT 1 FROM {} WHERE 列3 IS NULL LIMIT 1 OFFSET ?)".format(
data41, data41),
(value, data1, data2, data3, data4, data5, data6, sheet_name, ip_address, username, row_number))
row_number += 1
```
在这个示例中,我们首先执行了一个SELECT语句来获取第3列内容为空的行数。然后,在循环中,我们使用INSERT语句和SELECT子句来插入新数据。通过使用WHERE NOT EXISTS子句和LIMIT OFFSET限制,我们可以在第3列内容为空的行之后插入数据。
请确保在代码中正确替换列名和表名,并根据你的实际需求进行修改。同时,也要确保数据库连接已经建立,cursor对象已正确初始化。
如果你仍然遇到问题,请提供更多的代码和错误信息,以便我能够更好地帮助你。