Insert sql avec une colonne auto-increment

Résolu
edwinzap Messages postés 149 Date d'inscription samedi 29 septembre 2012 Statut Membre Dernière intervention 21 juin 2016 - 20 nov. 2014 à 13:27
edwinzap Messages postés 149 Date d'inscription samedi 29 septembre 2012 Statut Membre 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
A voir également:

2 réponses

jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 344
20 nov. 2014 à 13:33
Bonjour
et quel code as tu essayé ?
0
edwinzap Messages postés 149 Date d'inscription samedi 29 septembre 2012 Statut Membre Dernière intervention 21 juin 2016 2
20 nov. 2014 à 15:50
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..."
0
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.
0
edwinzap Messages postés 149 Date d'inscription samedi 29 septembre 2012 Statut Membre Dernière intervention 21 juin 2016 2
20 nov. 2014 à 16:41
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
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 344
20 nov. 2014 à 17:26
Tu Peux nous donner la structure de ta table ?
0
edwinzap Messages postés 149 Date d'inscription samedi 29 septembre 2012 Statut Membre Dernière intervention 21 juin 2016 2
20 nov. 2014 à 17:34
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 ! ^^
0
edwinzap Messages postés 149 Date d'inscription samedi 29 septembre 2012 Statut Membre Dernière intervention 21 juin 2016 2
20 nov. 2014 à 21:11
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 !
0
jordane45 Messages postés 38135 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 13 avril 2024 344
20 nov. 2014 à 21:25
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
0
http://www.mikesdotnetting.com/article/54/getting-the-identity-of-the-most-recently-added-record
0
//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)
0
edwinzap Messages postés 149 Date d'inscription samedi 29 septembre 2012 Statut Membre Dernière intervention 21 juin 2016 2
25 nov. 2014 à 01:38
Merci, je vais y regarder
0
Rejoignez-nous