如何从 Treeview / Tkinter (SQLite) 中的不同表中获取不同的值?
How to get different values from different tables in Treeview / Tkinter (SQLite)?
我一直在使用 Tkinter,我试图从我的 Treeview 中的不同 table 获取不同的列,我使用 SQLite 作为数据库,在我的第一个 table 调用中registers 我有不同的列 idcard,name,surname,cellphone,address,email 等 在我的第二个 table named [=15] =]attendance 我用来通过 ID 号存储我的条目出勤我的意思是我有两个条目 cardin = entry1
和 cardout = entry1
所以如果我的条目之一与我的 寄存器匹配table idcard, 它自动存储 idcard, timein, timeout, date 在我的 attendance table直到它工作得很好,但我无法从我的第一个 table registers 中获取 names, surnames columns 并存储它们在我的第二个 table attendace 中与我的 idcard, timein, timeout, date 相同(身份证、姓名、姓氏必须与首先 table),我试图解决它但我失败了,我真的不知道该怎么做,任何帮助都在广告中万斯。祝你有美好的一天。这是我的代码:
def botoningreso():
time = datetime.now().strftime("%I:%M%p")
date = datetime.now().strftime("%d/%m/%Y")
conn = sqlite3.connect('database.db')
c = conn.cursor()
cardin = entry1.get()
cardout = entry2.get()
c.execute('SELECT * FROM registers WHERE idcard = ? OR idcard = ?', (cardin, cardout))
if c.fetchall():
messagebox.showinfo(title='ID Registered', message='Registered Succefully')
c.execute("INSERT INTO attendance (timein, idcard, date) VALUES (?, ?, ?)", (time, cardin, date)) #Here i also wanto to save *names and surnames* from the first table *registers* that match with the idcard column.
conn.commit()
else:
messagebox.showerror(tittle=None, message='Wrong ID card')
c.close()
为获取的数据分配一个变量,然后对其进行索引并继续:
data = c.fetchall()
if data:
username = data[0][1] # Access username from fetched list
surname = data[0][2] # Access surname
messagebox.showinfo(title='ID Registered', message='Registered Succefully')
c.execute("INSERT INTO attendance (timein,idcard,date,user,sur) VALUES (?,?,?,?,?)", (time,cardin,date,username,surname))
conn.commit()
将变量分配给 c.fetchall()
很重要,因为它的行为类似于生成器对象,一旦使用就会丢失其项目。
我一直在使用 Tkinter,我试图从我的 Treeview 中的不同 table 获取不同的列,我使用 SQLite 作为数据库,在我的第一个 table 调用中registers 我有不同的列 idcard,name,surname,cellphone,address,email 等 在我的第二个 table named [=15] =]attendance 我用来通过 ID 号存储我的条目出勤我的意思是我有两个条目 cardin = entry1
和 cardout = entry1
所以如果我的条目之一与我的 寄存器匹配table idcard, 它自动存储 idcard, timein, timeout, date 在我的 attendance table直到它工作得很好,但我无法从我的第一个 table registers 中获取 names, surnames columns 并存储它们在我的第二个 table attendace 中与我的 idcard, timein, timeout, date 相同(身份证、姓名、姓氏必须与首先 table),我试图解决它但我失败了,我真的不知道该怎么做,任何帮助都在广告中万斯。祝你有美好的一天。这是我的代码:
def botoningreso():
time = datetime.now().strftime("%I:%M%p")
date = datetime.now().strftime("%d/%m/%Y")
conn = sqlite3.connect('database.db')
c = conn.cursor()
cardin = entry1.get()
cardout = entry2.get()
c.execute('SELECT * FROM registers WHERE idcard = ? OR idcard = ?', (cardin, cardout))
if c.fetchall():
messagebox.showinfo(title='ID Registered', message='Registered Succefully')
c.execute("INSERT INTO attendance (timein, idcard, date) VALUES (?, ?, ?)", (time, cardin, date)) #Here i also wanto to save *names and surnames* from the first table *registers* that match with the idcard column.
conn.commit()
else:
messagebox.showerror(tittle=None, message='Wrong ID card')
c.close()
为获取的数据分配一个变量,然后对其进行索引并继续:
data = c.fetchall()
if data:
username = data[0][1] # Access username from fetched list
surname = data[0][2] # Access surname
messagebox.showinfo(title='ID Registered', message='Registered Succefully')
c.execute("INSERT INTO attendance (timein,idcard,date,user,sur) VALUES (?,?,?,?,?)", (time,cardin,date,username,surname))
conn.commit()
将变量分配给 c.fetchall()
很重要,因为它的行为类似于生成器对象,一旦使用就会丢失其项目。