Vb SQL access ajout avec un numéro automatiqu [Résolu/Fermé]

Signaler
Messages postés
125
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
8 novembre 2012
-
Messages postés
125
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
8 novembre 2012
-
Bonjour,

j'ai un probleme dans l'ajout d'une ligne dans ma bd

voici ma table en format sql :
CREATE TABLE IF NOT EXISTS 'gh_client' (
  'id_client' int(250) NOT NULL AUTO_INCREMENT,
  'id_groupe_client' int(11) NOT NULL,
  'num_identifiant' varchar(250) NOT NULL,
  'nom' varchar(250) NOT NULL,
  'prenom' varchar(250) NOT NULL,
  'email' varchar(250) NOT NULL,
  'tel' varchar(50) NOT NULL,
  'portable' varchar(50) NOT NULL,
  'code_postal' double NOT NULL,
  'ville' varchar(250) NOT NULL,
  'pays' varchar(250) NOT NULL,
  'adresse' varchar(250) NOT NULL,
  'note' text NOT NULL,
  PRIMARY KEY ('id_client')
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;



et voila le code d'insertion que j'ai fait :

ligne("ID_Groupe_Client") = ID_Groupe_Client.Text
       ligne("Num_Identifiant") = Num_Identifiant.Text
       ligne("Nom") = Nom.Text
       ligne("Prenom") = Prenom.Text
       ligne("Tel") = Tel.Text
       ligne("Portable") = Portable.Text
       ligne("Email") = Email.Text
       ligne("Code_Postal") = Code_Postal.Text
       ligne("Ville") = Ville.Text
       ligne("Pays") = Pays.Text
       ligne("Adresse") = Adresse.Text
       ligne("Notes") = Notes.Text
        
      dec_dataset.Tables("Gh_Client").Rows.Add(ligne)

conComm = New OleDb.OleDbCommand("INSERT INTO Client VALUES(null,'" & ligne("ID_Groupe_Client") & "','" & ligne("Num_Identifiant") & "','" & ligne("Nom") & "','" & ligne("prenom") & "','" & ligne("Email") & "','" & ligne("Tel") & "','" & ligne("Portable") & "','" & ligne("Code_Postal") & "','" & ligne("Ville") & "','" & ligne("Pays") & "','" & ligne("Adresse") & "','" & ligne("Notes") & "')", con)

     adapter5.InsertCommand = conComm
     adapter5.Update(dec_dataset, "Gh_Client")




remarque : j 'ai essayé d'inserer NOTHING,NULL,TRUE dans le champs de la clé autoINcrementée mais ca marche pas

SVP j'ai besoin de votre aide
et merci d'avance







2 réponses

Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
275
Bonjour

c'est normal, il faut faire un insert un poil différent :

Insert into Table(champ2, champ3, champ4) Values(val2 va3, val4)

le but étant de ne pas mettre le champ1 qui serait autoincrémenté.

en gros tu donnes la liste des champs dans l'ordre de tes valeur, en sautant le premier.
Messages postés
125
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
8 novembre 2012
16
merci
je l'ai fait, mais ca me donne le message suivant : La référence d'objet n'est pas définie à une instance d'un objet ( NullReferenceException was Unhandled )

sur la ligne " adapter5.InsertCommand = conComm"
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
275
sans les ligne

dim adapter5 = quelqquechose
set adapter5 = new qquelquechose

ca marchera pas, ou tu les a pas copier/coller
Messages postés
125
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
8 novembre 2012
16
ca a declanché le message suivant : OleDbException was unhandled ( Type de données incompatible dans l'expression du critère.)

sur la ligne : adapter5.Update(dec_dataset, "Gh_Client")
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
275
hum, je réalise...
pourquoi utilises-tu des dataset pour passer ta commande OLE?

tu as ta OleDbCommand qui est prete, il suffit de faire

conComm.executeNonQuery

et hop, ca lance la commande sql sur la connection.
Messages postés
125
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
8 novembre 2012
16
peux tu me faire copier coller du code !
Messages postés
1483
Date d'inscription
mercredi 18 février 2009
Statut
Membre
Dernière intervention
23 août 2010
275
a la place de ca
adapter5.InsertCommand = conComm
adapter5.Update(dec_dataset, "Gh_Client")

tu mets ca

conComm.executeNonQuery
Messages postés
125
Date d'inscription
dimanche 16 novembre 2008
Statut
Membre
Dernière intervention
8 novembre 2012
16
ouiiiiiiiiiiii ca maaarche
merci bc bc bc

voila le code final pour ceux qui ont le meme probleme :

ligne = dec_dataset.Tables("Gh_Client").NewRow
        ligne("ID_Groupe_Client") = ID_Groupe_Client.Text
        ligne("Num_Identifiant") = Num_Identifiant.Text
        ligne("Nom") = Nom.Text
        ligne("Prenom") = Prenom.Text
        ligne("Tel") = Tel.Text
        ligne("Portable") = Portable.Text
        ligne("Email") = Email.Text
        ligne("Code_Postal") = Code_Postal.Text
        ligne("Ville") = Ville.Text
        ligne("Pays") = Pays.Text
        ligne("Adresse") = Adresse.Text
        ligne("Notes") = Notes.Text
        'ligne("ID_Client") = Nothing


        dec_dataset.Tables("Gh_Client").Rows.Add(ligne)

conComm = New OleDb.OleDbCommand("INSERT INTO Gh_Client (ID_Groupe_Client,Num_Identifiant,Nom,Prenom,Email,Tel,Portable,Code_Postal,Ville,Pays,Adresse,Notes) VALUES('" & ligne("ID_Groupe_Client") & "','" & ligne("Num_Identifiant") & "','" & ligne("Nom") & "','" & ligne("prenom") & "','" & ligne("Email") & "','" & ligne("Tel") & "','" & ligne("Portable") & "','" & ligne("Code_Postal") & "','" & ligne("Ville") & "','" & ligne("Pays") & "','" & ligne("Adresse") & "','" & ligne("Notes") & "')", con)


 conComm.ExecuteNonQuery()