# 获取工作表的最后一行 last_row = cursor.execute("SELECT MAX(id) FROM {}".format(data41)).fetchone()[0] # 将文本框中的内容按行写入表格 for i, line in enumerate(text.split("\n")): if line.strip() != "": # 执行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個循環寫入後面的列
时间: 2024-04-12 08:27:48 浏览: 89
ASP中使用Set ors=oConn.Execute()时获取记录数的方法
如果你想在第一个循环中将数据写入表的第一列,而在第二个循环中将数据写入后续列,你可以按照以下方式修改代码:
```python
# 获取工作表的最后一行
last_row = cursor.execute("SELECT MAX(id) FROM {}".format(data41)).fetchone()[0]
# 将文本框中的内容按行写入表格的第一列
for i, line in enumerate(text.split("\n")):
if line.strip() != "":
# 执行SQL插入语句,将数据写入表格的第一列(不写入ID字段)
cursor.execute("INSERT INTO {} (點檢内容) VALUES (?)".format(data41), (line.strip(),))
# 将下拉输入框中的内容按行写入表格的后续列
for i, value in enumerate(combobox_values):
# 执行SQL插入语句,将数据写入表格的后续列
cursor.execute(
"UPDATE {} SET 點檢狀態 = ?, 點檢日期 = ?, 點檢時間 = ?, 點檢人 = ?, 點檢綫別 = ?, 點檢班別 = ?, 機種 = ?, 點檢表名稱 = ?, IP地址 = ?, 用戶名 = ? WHERE id = ?".format(data41),
(value, data1, data2, data3, data4, data5, data6, sheet_name, ip_address, username, last_row + i + 1))
```
在这个修改后的代码中,第一个循环将数据写入表的第一列,而第二个循环将数据写入后续列。通过使用`UPDATE`语句,我们可以更新已插入的行,将后续列的值填充进去。
请注意,我在第二个循环中使用了`UPDATE`语句,而不是`INSERT`语句,因为你想在已插入的行上进行更新操作。同时,我添加了`WHERE id = ?`来指定要更新的行,以保证更新操作发生在正确的行上。
希望这个修改后的代码能满足你的需求!如果还有其他问题,请随时提问。
阅读全文