Insert sql avec une colonne auto-increment [Résolu]

Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
- - Dernière réponse : edwinzap
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
- 25 nov. 2014 à 01:38
Bonjour,
J'ai cherché partout et je ne trouve pas pourtant c'est simple j'en suis sûr.
J'ai une colonne de clé primaire avec incrémentation auto et je n'arrive pas à faire un insert !

Merci
Afficher la suite 

Votre réponse

2 réponses

Messages postés
23596
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
0
Merci
Bonjour
et quel code as tu essayé ?
edwinzap
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
-
C'est ce que je me suis dit mais j'ai l'erreur suivante si je ne mets rien:
"Cannot insert the value NULL into column Id_contact..."
INSERT INTO Table (Champ1,Champ2...) 
               values (V1,V2...)


Pas de déclaration de l'autoincrement dans la requête. Comme si le champs n'existait pas.
edwinzap
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
-
C'est ce que j'ai fais:
string sql = "INSERT INTO Contact (Name_contact, Firstname_contact) values('" +txtbx_nom.Text+"','" +txtbx_prenom.Text+"')";

Mais ça ne fonctionne pas
jordane45
Messages postés
23596
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
-
Tu Peux nous donner la structure de ta table ?
edwinzap
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
-
Autant pour moi, je ne sais pas pourquoi mais ma colonne n'était plus en auto-incrémentation (identity). Je pense que c'est une MAJ de ma BDD que je n'ai sans doute pas faite.
En tout cas merci de prendre du temps pour aider les imbéciles comme moi ! ^^
Commenter la réponse de jordane45
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
0
Merci
Par contre, avec cette colonne auto-increment, comment dois-je faire ma requête sql pour insérer dans la table enfant??
Exemple:
j'ai une table 'contact' avec "nom", "prenom", "ID_ville" et j'ai une autre table 'ville' avec "ID" (auto increment), "Ville".
D'avance merci, je cherche depuis un bout de temps et n'ai jamais d'explication valable !
jordane45
Messages postés
23596
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
12 décembre 2018
-
Lorsque tu ajoutes dans ta première table... le champ auto incrémenté..ben.. s'incrémente...
Tu dois donc, une fois l' INSERT réalisé.. récupérer le numéro de l'id généré.
Ainsi.. tu pourras ensuite l'utiliser pour ton autre table....

Sous Mysql par exemple, tu peux utiliser :
http://php.net/manual/fr/function.mysql-insert-id.php

Sous SqlServer tu as @@IDENTITY par exemple :
http://php.net/manual/fr/function.mysql-insert-id.php

Et sinon.. au pire.. tu fais une requête sur le MAX(id) du type :
SELECT MAX(ID) 
FROM Ville
http://www.mikesdotnetting.com/article/54/getting-the-identity-of-the-most-recently-added-record
//C#
string query = "Insert Into Categories (CategoryName) Values (?)";

string query2 = "Select @@Identity";

int ID;

string connect = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|Northwind.mdb";

using (OleDbConnection conn = new OleDbConnection(connect))

{

  using (OleDbCommand cmd = new OleDbCommand(query, conn))

  {

    cmd.Parameters.AddWithValue("", Category.Text);

    conn.Open();

    cmd.ExecuteNonQuery();

    cmd.CommandText = query2;

    ID = (int)cmd.ExecuteScalar();

  }

}


EDIT : Ajout des balises de code (jordane)
edwinzap
Messages postés
159
Date d'inscription
samedi 29 septembre 2012
Dernière intervention
21 juin 2016
-
Merci, je vais y regarder
Commenter la réponse de edwinzap

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.