Problème insertion dans MySql

ludovicbarman Messages postés 11 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 23 août 2009 - 5 avril 2009 à 21:38
ludovicbarman Messages postés 11 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 23 août 2009 - 6 avril 2009 à 12:57
Bonjour,

J'ai un problème assez urgent (oui, je sais, mais juste pour dire que même si vous avez une ébauche de solution ou une idée, pitiez, donnez-la svp !).

J'essaie tout bêtement d'insérer des données (string et byte[](donc blob)) dans une base de donnée MySql.

La connection fonctionne (j'arrive à faire des SELECT), mais IMPOSSIBLE d'insérer un enregistrement avec mes paramètres :-/

Voici un extrait du code; lorsque j'exécute, ça ajoute bel et bien un enregistrement dans MySql, mais avec les valeurs à NULL et Blob-0octets; comme si les paramètres ne marchaient pas...

#############
mySqlConnectionToPaintMask.Open();

MySqlCommand mySqlCommand = new MySqlCommand("INSERT INTO Brand(Id, Name, Pict) VALUES(NULL, @Name, @Pict)", mySqlConnectionToPaintMask);
mySqlCommand.Parameters.Add("@Name", MySqlDbType.VarChar, 30);
mySqlCommand.Parameters.Add("@Pict", MySqlDbType.Blob);
mySqlCommand.Parameters["@Name"].Value = brand.Name;
mySqlCommand.Parameters["@Pict"].Value = pictBlob;
mySqlCommand.ExecuteNonQuery();
#############

Merci d'avance !

Ludovic.

3 réponses

ludovicbarman Messages postés 11 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 23 août 2009
5 avril 2009 à 21:41
Désolé, j'ai oublié de préciser, j'utilise le connecteur MySql 6.0; (et désolé pour la lisibilité, je ne savais pas que les retours à la ligne étaient supprimés)
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
6 avril 2009 à 10:38
Salut

INSERT INTO Brand(Id, Name, Pict) VALUES(NULL, @Name, @Pict)

Tu forces Id à NULL là... Et si c'est ta clé primaire, c'est pas Nullable.

=> INSERT INTO Brand(Name, Pict) VALUES (@Name, @Pict)

Krimog :
while (!succeed = try()) ;
0
ludovicbarman Messages postés 11 Date d'inscription jeudi 21 août 2008 Statut Membre Dernière intervention 23 août 2009
6 avril 2009 à 12:57
Hello,

Non, j'ai finalement trouvé le problème, il suffisait de remplacer les @ par des ? (par exemple ?Name au lieu de @Name) et tout à fonctionné !

Merci quand même pour ta réponse ! Et effectivement ça pouvait être un autre problème, mais ça ne résolvait pas tout :-/

Merci !
0
Rejoignez-nous