Insert ne faisant rien

Signaler
Messages postés
23
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
30 mai 2006
-
Messages postés
23
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
30 mai 2006
-
Bonjour, je réalise un programme qui insere des données dans une base sql.

ma requete est la suivant


try
{
// Open the connection.
SqlConnection connection = new SqlConnection("Data Source=GOULPHAR;Initial Catalog=testsql;Integrated Security=True;Pooling=False");
connection.Open();

// Open the Command and execute the DataReader.
SqlCommand sqlinsert = new SqlCommand("INSERT INTO sqltesttable (Prenom, Nom, Mail)VALUES ('"+textprenom.Text+"','"+textnom.Text+"','"+Erreur.Text+"')", connection);


int affectedrows = sqlinsert.ExecuteNonQuery();

}
catch (Exception ex)
{
MessageBox.Show(ex.Message);



mais j'ai a chaque fois une erreur qui arrive détetectée par int affectedrows = sqlinsert.ExecuteNonQuery();

les données de chaines ou binaires seront tronquées. l'instruction a été arrété.

donc rien est insérée dans la table sqltesttable. les définitions de la table sont tous des varchar(50) donc normalement les informations que je rentre doive rentrer si qqun voit l'erreur dans mon code ?

3 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
54
Salut

Pourtant, le probleme doit certainement venir du fait que tes chaines sont plus grandes que la longueur admise dans tes champs en BDD.

C'est normal que tu attribues la valeur "Erreur.Text" dans le champ Mail ? (je dis ca, parce que Erreur et Mail c'est tres différent, donc ca pourrait etre une etourderie ;) )
Vérifie la valeur que prend ta requete avant l'execution, pour voir si elle est bien formée et correspond a ce que tu attends.

Mx
MVP C# 
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
37
vérifie les ' dans les chaines aussi...

un conseil... n'utilise jamais ce genre de requetes en production... c'est très dangeureux et surtout et tu risques de te faire hacker ton serveur de base de données.

utilises plutot les SqlParameter

Sébastien FERRAND (
blog)
Consultant Indépendant
[Microsoft MVP Visual C#]
Messages postés
23
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
30 mai 2006

non tout est bon, et pour le hack merci du conseil :) je fais pas vraiment attention vu que c'est pour apprendre que je mentraines la :)

mais lerreur continu toujours, en fait c'est des qu'il y a plus de un caractere dans chaque mot que çà plante ce qui est génant :s alors que la regle de la table accepte 50 caracteres