천재 모든 Treeview 행을 sqllite3 데이터베이스에 삽입하려고 하는데 그 대신 마지막 행만 삽입합니다.
다음을 시도했습니다.
def buying_addcheck(self):
self.conn= sqlite3.connect('car dealership.db')
self.cursorObj= self.conn.cursor()
self.checkid += 1
self.buying_checkspaymenttree.insert("", 'end', values=(
self.buying_check_date_var.get(), self.buying_check_value_var.get(),
self.buying_check_num_var.get(),self.checkid))
def checks_db(self):
self.conn= sqlite3.connect('car dealership.db')
self.cursorObj= self.conn.cursor()
# Values variable from Treeview and other widget's
sellingcarsinfchecks= (
(
self.checkid, self.makevar.get(), self.sellernamevar.get(),
self.Buyingdate_var.get(),
self.cashepayments.get(),
self.buying_check_num_var.get(), self.buying_check_value_var.get(), self.buying_check_date_var.get(),
self.buying_nocheckpic))
self.cursorObj.execute(
"""INSERT INTO cars_buying_checksonly(checkid, carmake, sellername, buyingdate, entirepaymentmethod, checknum, checkvalue, checkdate, checkpic)VALUES(?,?,?,?,?,?,?,?,?)""",
sellingcarsinfchecks)
self.conn.commit()
질문: 모든 Treeview 항목을 sqllite3 데이터베이스에 삽입하는 방법.
@acw1668 답변 감사합니다. 계속해서 협조해 주셔서 감사합니다. 솔직히 말해서 이것은 제 문제이고 어떻게 해야 할지 모르겠습니다. for 루프가 도움이 될 수 있을 것 같지만 정확한 해결책을 모르겠습니다.
asaad kittaneh2022-02-15 15:09:13나는 당신이 필요로하는 것이 buy_addcheck() 내부에서 checked_db() 를 호출하는 것이라고 생각합니다. 그러면 트리뷰를 거칠 필요가 없습니다.
acw16682022-02-15 15:09:13@awc1668 (self.buying_checkspaymenttree.insert) 값을 삽입한 후 buy_addcheck() 내부에서 self.checks_db() 를 호출하려고 시도했지만 작동하지 않습니다. 내가하려는 것은 다른 버튼을 사용하여 sqllite3 데이터베이스에 Treeview 항목을 저장하고 삽입하는 것입니다.
asaad kittaneh2022-02-15 15:09:13또한 Sellingcarsinfchecks가 중첩 튜플을 사용하는 이유는 무엇입니까?
Delrius Euphoria2022-02-15 15:09:13- 답변 # 1
1단계: Treeview의 항목을 self.checksrecords 목록에 추가
2단계: self.checkrecords 목록의 for 루프 레code를 사용하여 목록의 값을 DB에 삽입
def buying_addcheck(self): self.checksrecords=[] self.checkid += 1 self.buying_checkspaymenttree.insert("", 'end', values=( self.buying_check_date_var.get(), self.buying_check_value_var.get(), self.buying_check_num_var.get(), self.checkid,self.makevar.get())) for child in self.buying_checkspaymenttree.get_children(): self.checksrecords.append(self.buying_checkspaymenttree.item(child) ["values"]) def checks_db(self): self.conn= sqlite3.connect('car dealership.db') self.cursorObj= self.conn.cursor() for self.checksrecords in self.checksrecords: self.cursorObj.execute("INSERT INTO cars_buying_checksonly_demo (checkdate, checkvalue, checknum, checkid,carmake)values(?,?,?,?,?)", (self.checksrecords[0],self.checksrecords[1],,self.checksrecords[2], self.checksrecords[3],self.checksrecords[4])) self.conn.commit()
트리뷰의 모든 항목을 살펴봐야 합니다.
acw16682022-02-15 15:09:13