Les données chaines ou binaires sont tronquées

Messages postés
16
Date d'inscription
samedi 28 novembre 2009
Statut
Membre
Dernière intervention
28 août 2011
- - Dernière réponse : leprov
Messages postés
1163
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
- 10 mars 2010 à 12:46
bonjour à vous,j'ai un ptit pbm concernant sql server 2000.dans ma base de données j'ai une table stagiaire(mat_stag(varchar(6), nom(varchar(25)), prenom(varchar(25)), date_nais(datetime(8)), num_tel(nchar(10)) ) quand j'insere directement dans ma table(dans sql server) j'aurai pas de message d'erreur,mais quand je le fais via interface (visual studio C#)j'aurai le message d'erreur:bonjour à vous,j'espere que vous allez bien,j'ai un ptit pbm concernant sql server 2000.dans ma base de données j'ai une table stagiaire(mat_stag(varchar(6), nom(varchar(25)), prenom(varchar(25)), date_nais(datetime(8)), num_tel(nchar(10)) ) quand j'insere directement dans ma table(dans sql server) j'aurai pas de message d'erreur,mais quand je le fais via interface (visual studio C#)j'aurai le message d'erreur: les données chaines ou binaires sont tronquées,action sera arrêtée.l'instruction d'insertion que j'utilise est la suivante:
string matstag = textBox1.Text;

string nom = textBox2.Text.ToUpper();

string prenom = textBox3.Text;

DateTime date_nais = DateTime.Parse( maskedTextBox1.Text);

string numtelmobil = textBox6.Text;

try

{

string connectString = "Data Source=PC;Initial Catalog=OrdreAvocat;Integrated Security=True";

Conn = new SqlConnection(connectString);

Conn.Open();

SqlCommand command = new SqlCommand("insert into stagiaire values('" + matsatag + "','" + nom + "','" + prenom + "','" + date_nais + "','" + numtelmobil + "'') ", Conn);

command.ExecuteNonQuery();

Conn.Close();

}

catch (Exception ex)

{ MessageBox.Show(ex.Message); }

est ce que vous pouvez m'aider pour resoudre ce probleme.je vous remercie

NB:le numero de telephone algerien.
Afficher la suite 

2 réponses

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
30
0
Merci
Salut

Pour tester d'où vient ton problème, tu devrais mettre un point d'arrêt avant ExecuteNonQuery(), récupérer la valeur de la propriété CommandText de ta variable command et essayer d'exécuter exactement cette requête directement sur SQL Server.

A priori, le problème est qu'une des valeurs que tu cherches à insérer est trop grande par rapport à la taille du champ.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
Commenter la réponse de krimog
Messages postés
1163
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
13
0
Merci
Tu devrais aussi envisager d'utiliser des requetes paramétrées.
Essaie dans ta textbox 6 de mettre le texte suivant :

a'); delete from stagiaire --

Juste avec une saisie depuis ton formulaire, tu peux injecter des requetes dans ta base de données. la cest une cas extreme, mais ca va aussi te faire planter a la moindre saisie de caractères spéciaux (par exemple ' ou -- ou ; pour ne citer que ceux la)
Commenter la réponse de leprov