将数据从一个表复制到另一个sqlite3

2024-10-05 14:26:33 发布

您现在位置:Python中文网/ 问答频道 /正文

因此,我有一个包含我将持有的产品的数据库,在这个数据库中,我有一个篮子表,用户可以在其中添加他们想购买的商品。由于某种原因,我无法在视图窗口中选择一个并将该数据复制到我的basket表中。你知道吗

下面是我为移动数据创建的函数。你知道吗

def Move():
    if not tree.selection():
        error = tkMessageBox.showerror("Error", "Cannot move nothing to basket")
    else:
        result = tkMessageBox.askquestion('CCOS', 'Do you want to add this to the basket?', icon="warning")
        if result == 'yes':
            curItem = tree.selection()
            print(curItem)
            contents = (tree.item(curItem))
            selecteditem = contents['values']
            Database()
            cursor.execute("INSERT INTO `basket` (product_name, product_qty, product_price) VALUES(?, ?, ?)", 
                            (str(PRODUCT_NAME.get()), int(PRODUCT_QTY.get()), int(PRODUCT_PRICE.get())))
            conn.commit()
            PRODUCT_ID.set("")
            PRODUCT_NAME.set("")
            PRODUCT_PRICE.set("")
            PRODUCT_QTY.set("")
            cursor.close()
            conn.close()

Comment:

我的代码中有一系列不同的函数,Database()是它自己创建数据库的函数,cursor = conn.connect()。我没有得到一个错误,但是当我运行函数时,没有数据被复制到表中。你知道吗

当我调用print(curItem)时,输出的是:('I002',)

以下是数据库功能:

def Database():
    global conn, cursor
    conn = sqlite3.connect("main_storage.db")
    cursor = conn.cursor()
    cursor.execute("CREATE TABLE IF NOT EXISTS `admin` (admin_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, username TEXT, password TEXT)")
    cursor.execute("CREATE TABLE IF NOT EXISTS `product` (product_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, product_name TEXT, product_qty TEXT, product_price TEXT)")
    cursor.execute("CREATE TABLE IF NOT EXISTS `basket` (product_id INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, product_name TEXT, product_qty TEXT, product_price TEXT)")
    cursor.execute("SELECT * FROM `admin` WHERE `username` = 'admin' AND `password` = 'admin'")
    if cursor.fetchone() is None:
        cursor.execute("INSERT INTO `admin` (username, password) VALUES('admin', 'admin')")
        conn.commit()

Tags: 数据函数text数据库executeifadminnot