Salut à tous!
J'ai le code suivant. Lorsque j'insère une données dont la clé primaire n'existes pas dans la table, l'insertion se déroule bien avec même un message de confirmation. Mais lorsque je rentre une ligne dont la clé primaire exite déjà voici le message suivant:

Violation de la contrainte PRIMARY KEY 'PK_Reglmtcli'. Impossible d'insérer une clé en double dans l'objet 'dbo.Reglmtcli'.
L'instruction a été arrêtée.
Au fait, je voudrai qu'au moment de l'insertion il y ai d'abord une sorte de verification de l'existence de la clé puis ,s'il existe ,un message de confirmation qu'une ligne ayant une telle clé exite déjà.
Sinon, le code insere les donnees.
Voici le code en question:

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
 public string RempApos(string str)
        {
            return str.Replace("'", "''");
        }
 
 
 
        void BT_Send_Click(object sender, EventArgs e)
        {
 
            // Déclaration de l'objet de connexion
            System.Data.SqlClient.SqlConnection oConnection;
 
            // Création de l'objet de connexion
            oConnection = new System.Data.SqlClient.SqlConnection();
 
            // Paramétrage de la chaîne de connexion
            string sConnectionString;
            sConnectionString = "Data Source=.\\SQLEXPRESS;Initial Catalog=Database1.mdf;Integrated Security=True;User Instance=True;Context Connection=False;";
            sConnectionString = sConnectionString + " Trusted_Connection=True;";
            oConnection.ConnectionString = sConnectionString;
 
 
            // Connexion à la base de données
            oConnection.Open();
 
            // Déclaration de l'objet SqlCommand et de la requête SQL
            System.Data.SqlClient.SqlCommand oCommand;
            string sSQL;
 
            //Ecriture de la requête
 
            sSQL = "INSERT INTO [Reglmtcli](Numreg,Codecli,Nomcli,Objet,Datereg,Modepay,Montant,RestImpu,Encourcli,Codebanq,Codegui,Numcmpte,CleRib,Domicili,Titulaire,Numcheq,Datecheq,Observation)";
            sSQL = sSQL + " VALUES('" + ZeNumreg.Text + "','" + ZeCodecli.Text + "','" + RempApos(ZeNomcli.Text) + "','" + RempApos(ZeObjet.Text) + "','" + ZeDatereg.Text + "','" + ZeModepay.Text + "','" + ZeMontant.Text + "','" + ZeRestImpu.Text + "','" + ZeEncourcli.Text + "','" + ZeCodebanq.Text + "','" + ZeCodegui.Text + "','" + ZeNumcmpte.Text + "','" + ZeCleRib.Text + "','" + ZeDomicili.Text + "','" + RempApos(ZeTitulaire.Text) + "','" + ZeNumcheq.Text + "','" + ZeDatecheq.Text + "','" + RempApos(ZeObservation.Text) + "')";
 
 
            // Création de l'objet SqlCommand
            oCommand = new System.Data.SqlClient.SqlCommand(sSQL, oConnection);
 
            // On appelle la méthode ExecuteNonQuery pour éxécuter notre commande
            oCommand.ExecuteNonQuery();
 
            // On écrit notre message de confirmation
            LB_Message.Text = "Le reglement n° " + ZeNumreg.Text + " a été enregistré !";
 
            // On rend le message visible
            LB_Message.Visible = true;
 
            // Fermeture de la connexion
            oConnection.Close();
 
        }
Merci d'avance !