如何在SQLite中编辑和创建数据

问题描述 投票:0回答:1

我正在尝试使用 python 在 sqlite 文件中编辑和创建新数据。

def save_updated_data(self, entry_values, update_window, current_row_data):
    updated_row_data = {}
    for entry, (label, value) in zip(entry_values, current_row_data.items()):
        updated_row_data[label] = entry.get() if entry.get() else value

    row_index = self.data.index(current_row_data)
    self.data[row_index] = updated_row_data

    self.save_to_sqlite()
    messagebox.showinfo("Update", "Data updated successfully!")
    update_window.destroy()
    self.display_data()

def create_data_window(self, conn):
    cur = conn.cursor()
    cur.execute(f"INSERT INTO {table_name} VALUES ({','.join(['?']*len(new_data))})", new_data)
    conn.commit()
    messagebox.showinfo("Create Data", "Data successfully created.")

def save_created_data(self, entry_values, create_window):
    cur = conn.cursor()
    cur.execute(f"INSERT INTO {table_name} VALUES ({','.join(['?']*len(new_data))})", new_data)
    conn.commit()
    messagebox.showinfo("Create Data", "Data successfully created.")

def save_to_sqlite(self, conn, table_name, row_index, column_index, new_value):
    cursor = self.conn.execute('SELECT * FROM sqlite_master WHERE type="table" LIMIT 1')
    table_name = cursor.fetchone()[1]
    with self.conn:
        self.conn.execute(f"INSERT INTO {table_name} VALUES (NULL, ?, ?)", (row["column1"], row["column2"]))

        for row in self.data:
            self.conn.execute("INSERT INTO road_data VALUES (NULL, ?, ?)", (row["column1"], row["column2"]))

我真的不知道为什么它没有被保存。它确实给了我一些错误,例如参数错误。我只是编码新手,到目前为止我真的很喜欢它,只是有时像这样很困难。谢谢你。

python sqlite
1个回答
0
投票

确保正确打开和关闭连接和光标,如果您是初学者,这很可能是一个原因。 您的数据库被锁定了吗? 然后你最好检查一下数据库上有多少个 OPEN 游标。

如果没有看到你的错误,我无法告诉你,但这就是我身上经常发生的事情。

© www.soinside.com 2019 - 2024. All rights reserved.