Bonjour,
J'ai créé une base de données sql serveur jusqu'à la tout va bien, j'arrive à afficher mes données dans la listbox de tkinter.
Après avoir sélectionner une ligne dans ma listbox je n'arrive pas à récupérer la valeur du champ PartDescription, celui-ci affiche les
2 premiers caractères du champ ID ?
backend.py
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 import pyodbc class Database: def __init__(self, db): self.conn = pyodbc.connect(db) self.cur = self.conn.cursor() self.cur.execute("SELECT * FROM dbo.tblPartMain") self.conn.commit() def view(self): self.cur.execute("SELECT * FROM dbo.tblPartMain") rows = self.cur.fetchall() return rows def search(self, PartDescription="", MfrPartNumber=""): self.cur.execute("SELECT * FROM dbo.tblPartMain WHERE PartDescription=? OR MfrPartNumber=?", PartDescription, MfrPartNumber) rows=self.cur.fetchall() return rows def __del__(self): self.conn.close()
frontend.py
Comment puis je récupérer cette valeur sachant que cela fonctionne avec une base de données sqlite ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72 from tkinter import * from backend import Database database = Database('DRIVER={ODBC Driver 13 for SQL Server};SERVER=XD\SQLEXPRESS;user=XD*****\X****,' 'password="";Trusted_Connection=yes;DATABASE=bdd_doce') def get_selected_row(event): global selected_tuple index = list1.curselection()[0] selected_tuple = list1.get(index) e1.delete(0, END) e1.insert(END, selected_tuple[1]) e2.delete(0, END) e2.insert(END, selected_tuple[2]) def view_command(): list1.delete(0,END) for row in database.view(): list1.insert(END,row) def search_command(): list1.delete(0,END) for row in database.search(PartDescription_text.get(), MfrPartNumber_text.get()): list1.insert(END, row) window = Tk() window.wm_title("Liste de Pièces") l1 = Label(window, text="PartDescription") l1.grid(row=0, column=0) l2 = Label(window, text="MfrPartNumber") l2.grid(row=0, column=2) PartDescription_text=StringVar() e1 = Entry(window, textvariable=PartDescription_text) e1.grid(row=0, column=1) MfrPartNumber_text=StringVar() e2=Entry(window, textvariable=MfrPartNumber_text) e2.grid(row=0,column=3) list1=Listbox(window, height=6, width=35) list1.grid(row=2, column=0, rowspan=6,columnspan=2) sb1=Scrollbar(window) sb1.grid(row=2,column=2, rowspan=6) list1.configure(yscrollcommand=sb1.set) sb1.configure(command=list1.yview) list1.bind('<<ListboxSelect>>', get_selected_row) b1 = Button(window,text="Lister Pièces", width=12, command=view_command) b1.grid(row=2, column=3) b2 = Button(window,text="Rechercher", width=12, command=search_command) b2.grid(row=3, column=3) window.mainloop()
Merci pour votre aide
Partager