Bonjour a tous , je suis nouveau dans le monde merveilleux du codage , je n'ai pas beaucoup de connaissances , j'essaye de me faire un logiciel ,ça fait des semaines que je bloque au nivaux de la base e donnée "UPDATE" , j'ai KeyError: 'Comp_Adresse' ligne 54,55,57,58 sur toutes les lignes avec un tiret bas , et quant ça exécute la modification en mettant ses lignes en commentaire ça me modifie tous les lignes de la base de données .
je n'arrive pas a trouver une solution , quelqu'un peut me donner un coup de pouce , je rappel je suis vraiment un débutant .
merci d'avance .


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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
from PyQt5 import uic
from PyQt5.QtWidgets import QApplication, QDialog, QMainWindow, QMessageBox, QTableWidgetItem, QComboBox
import sys
import sqlite3
 
conn = sqlite3.connect(r"information.db")
curs = conn.cursor()
curs.execute("""CREATE TABLE IF NOT EXISTS information (nom text , prenom text , adresse text ,
 comp_adresse text , cp text , ville text , tel_fix text , tel_por text , email text)""")
 
 
class MainApp(QMainWindow):
    def  __init__(self,parent=None):
        super(MainApp,self).__init__(parent)
        self.ui = uic.loadUi('mes_clients.ui')
        self.ui.show()
        self.load_Database()
        self.Init_Ui()
        self.data = {}
 
 
    def Init_Ui(self):
        self.ui.pushButton_3.clicked.connect(self.show_ajouter_client)
        self.ui.pushButton.clicked.connect(self.Delete_data)
        self.ui.pushButton_2.clicked.connect(self.quitter)
        self.ui.pushButton_4.clicked.connect(self.show_modifier_client)
 
 
    def quitter(self): 
        self.ui.close()                           
 
    def show_ajouter_client(self):
        self.ajouter = uic.loadUi('ajouter_client.ui')
        self.ajouter.show()
        self.ajouter.pushButton.clicked.connect(self.ajouter_un_client)
 
 
 
    def show_modifier_client(self):
        self.modifier = uic.loadUi('modifier_client.ui')
        self.modifier.show()
 
 
        for i in range(self.ui.tableWidget.columnCount()):
            idx = self.ui.tableWidget.item(self.ui.tableWidget.currentRow(), i).text()
            cul_name = self.ui.tableWidget.horizontalHeaderItem(i).text()
            self.data[cul_name] = idx
 
        self.modifier.lineEdit.setText(self.data['Nom'])
        self.modifier.lineEdit_2.setText(self.data['Prenom'])
        self.modifier.lineEdit_3.setText(self.data['Adresse'])
        self.modifier.lineEdit_4.setText(self.data['Comp_Adresse'])
        self.modifier.lineEdit_5.setText(self.data['Code_postal'])
        self.modifier.lineEdit_6.setText(self.data['Ville'])
        self.modifier.lineEdit_7.setText(self.data['Tel_fixe'])
        self.modifier.lineEdit_8.setText(self.data['Tel_Portable'])
        self.modifier.lineEdit_9.setText(self.data['Email'])
 
        self.modifier.pushButton.clicked.connect(self.on_update_submit)
 
 
 
    def on_update_submit(self):
 
        Nom = self.modifier.lineEdit.text()
        Prenom = self.modifier.lineEdit_2.text()
        Adresse = self.modifier.lineEdit_3.text()
        Comp_Adresse = self.modifier.lineEdit_4.text()
        Code_postal = self.modifier.lineEdit_5.text()
        Ville = self.modifier.lineEdit_6.text()
        Tel_fixe = self.modifier.lineEdit_7.text()
        Tel_Portable = self.modifier.lineEdit_8.text()
        Email = self.modifier.lineEdit_9.text()
 
        list_data = []
        list_data.append(Nom)
        list_data.append(Prenom)
        list_data.append(Adresse)
        list_data.append(Comp_Adresse)
        list_data.append(Code_postal)
        list_data.append(Ville)
        list_data.append(Tel_fixe)
        list_data.append(Tel_Portable)
        list_data.append(Email)
        quary = """UPDATE information SET nom ='{}', prenom ='{}',
                adresse ='{}', comp_adresse ='{}', cp ='{}', ville = '{}',
                tel_fix = '{}', tel_por = '{}',
                email = '{}'""".format(Nom,
                Prenom, Adresse,Comp_Adresse, 
                Code_postal, Ville, Tel_fixe, Tel_Portable, Email)
        curs.execute(quary)
        conn.commit()
        conn.close()
        for i in range(self.ui.tableWidget.columnCount()):
            self.ui.tableWidget.item(self.ui.tableWidget.currentRow(), i).setText(list_data[i])
        self.modifier.close()
 
    def ajouter_un_client(self):
 
        # print("c_civilitee", c_civilitee)
        n_nom = self.ajouter.lineEdit.text() 
        p_prenom = self.ajouter.lineEdit_2.text()
        a_adresse = self.ajouter.lineEdit_3.text()
        c_comp_adress = self.ajouter.lineEdit_4.text()
        c_code_pos = self.ajouter.lineEdit_5.text()
        v_ville = self.ajouter.lineEdit_6.text()
        t_tel_fixe = self.ajouter.lineEdit_7.text()
        t_tel_port = self.ajouter.lineEdit_8.text()
        e_email = self.ajouter.lineEdit_9.text() 
 
        if n_nom.strip(" ") != "": 
            try :
                curs.execute("""INSERT INTO information (nom,prenom,adresse,comp_adresse,cp,ville,
                tel_fix,
                tel_por,
                email)VALUES(?,?,?,?,?,?,?,?,?)""" , (n_nom,p_prenom,a_adresse,c_comp_adress,c_code_pos,v_ville,
                t_tel_fixe,
                t_tel_port,
                e_email))
 
                conn.commit()
                self.load_Database()
                self.ajouter.close()
            except Exception as error  :
 
                print(error)
        else:
            self.message_erreur_remplissage()    
 
    def message_erreur_remplissage(self):
        msg = QMessageBox()
        msg.setWindowTitle("Erreur")
        msg.setText("Veuillez remplir les champs obligatoire")
        msg.setIcon(QMessageBox.Warning)
        msg.setStandardButtons(QMessageBox.Cancel)
        msg.exec_()
 
 
 
    def Delete_data(self):
        content = "SELECT * FROM information"
        res = conn.execute(content)  
        for row in enumerate(res):
            if row[0] == self.ui.tableWidget.currentRow():
                data = row[1]
                n_nom = data[0]  
                p_prenom = data[1]  
                a_adresse = data[2]  
                c_comp_adress = data[3]  
                c_code_pos = data[4]  
                v_ville = data[5]  
                t_tel_fixe = data[6]  
                t_tel_port = data[7]  
                e_email = data[8]  
                curs.execute("""DELETE FROM information where nom=?
                 AND prenom=? AND adresse=?
                 AND comp_adresse=? AND cp=? AND ville=? 
                 AND tel_fix=? AND tel_por=? AND email=?""" , (n_nom,p_prenom,a_adresse,
                 c_comp_adress,c_code_pos,
                 v_ville,t_tel_fixe,t_tel_port,e_email))
                conn.commit()
                self.load_Database()  
 
 
    def load_Database(self):
        while self.ui.tableWidget.rowCount() > 0:
            self.ui.tableWidget.removeRow(0)
        content = "SELECT * FROM information"
        res = conn.execute(content)
        for row_index , row_data in enumerate(res):
            self.ui.tableWidget.insertRow(row_index)
            for colm_index , colm_data in enumerate(row_data):
                self.ui.tableWidget.setItem(row_index,colm_index,QTableWidgetItem(str(colm_data)))
        self.ui.label_3.setText("Totale clients : "+str(self.ui.tableWidget.rowCount()))        
        return        
 
 
app = QApplication([])
win = MainApp() 
app.exec_()