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

时间:2018-12-12 16:12:25

标签: python python-3.x tkinter sqlite treeview

因此,我有一个包含将要持有的产品的数据库,在该数据库中,我有一个购物篮表,用户可以在其中添加想要购买的商品。由于某些原因,我无法在视图窗口中进行选择,并将该数据复制到我的购物篮表格中。

这是我创建的用于移动数据的功能。

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()
  

评论

我的代码中有一系列不同的功能,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()

0 个答案:

没有答案