# 将下拉输入框中的内容按行写入表格的后续列 for i, value in enumerate(combobox_values): # 执行SQL插入语句,将数据写入表格的后续列 cursor.execute( "UPDATE {} SET 點檢狀態 = ?, 點檢日期 = ?, 點檢時間 = ?, 點檢人 = ?, 點檢綫別 = ?, 點檢班別 = ?, 機種 = ?, 點檢表名稱 = ?, IP地址 = ?, 用戶名 = ?".format( data41), (value, data1, data2, data3, data4, data5, data6, sheet_name, ip_address, username))這段代碼會將歷史數據全部更改為新的數據,怎麽修改它不改變原有數據
时间: 2024-04-12 07:30:11 浏览: 9
要修改这段代码,使其不改变原有数据,你可以使用INSERT语句而不是UPDATE语句。INSERT语句可以在表中插入新的行,而UPDATE语句会更新表中已存在的行。
以下是修改后的代码示例:
```python
# 将下拉输入框中的内容按行插入表格的后续列
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))
```
这样修改后,新的数据将会以插入的方式添加到表格的后续列,而不是更新原有数据。确保你在执行INSERT语句时提供正确的表名和列名,并按照正确的顺序提供对应的值。
请注意,这只是一种修改代码的方式,具体如何修改取决于你的需求和数据库结构。在进行任何修改之前,请确保先备份你的数据库以防止数据丢失。
相关问题
是這段# 将下拉输入框中的内容按行写入表格的后续列 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)),不寫入ID
要将这段代码修改为不写入 `ID` 字段,您只需要在 `UPDATE` 语句中省略 `id` 字段的赋值部分即可。修改后的代码如下所示:
```python
# 将下拉输入框中的内容按行写入表格的后续列
for i, value in enumerate(combobox_values):
# 执行SQL插入语句,将数据写入表格的后续列
cursor.execute(
"UPDATE {} SET 點檢狀態 = ?, 點檢日期 = ?, 點檢時間 = ?, 點檢人 = ?, 點檢綫別 = ?, 點檢班別 = ?, 機種 = ?, 點檢表名稱 = ?, IP地址 = ?, 用戶名 = ?".format(data41),
(value, data1, data2, data3, data4, data5, data6, sheet_name, ip_address, username))
```
这样,`ID` 字段将不会被更新,而其他字段的值将根据指定的参数进行更新。
# 获取工作表的最后一行 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個循環寫入後面的列
如果你想在第一个循环中将数据写入表的第一列,而在第二个循环中将数据写入后续列,你可以按照以下方式修改代码:
```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 = ?`来指定要更新的行,以保证更新操作发生在正确的行上。
希望这个修改后的代码能满足你的需求!如果还有其他问题,请随时提问。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)