Probleme de remplissage d une table

madrid79 Messages postés 15 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 19 août 2008 - 9 août 2008 à 19:12
madrid79 Messages postés 15 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 19 août 2008 - 9 août 2008 à 22:00
bonjour,
voila j'ai un probleme grave,
lors ddu remplissage de ma table ca fonctionne bien avecun nombre a 3 chifre, mais dés que je saisie un chifre de plus que 3 chifre j'ai un message d erreur,

Arithmetic overflow error converting float TODATA type numeric

mes données sont de type Float,
merci de votre aide

4 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
9 août 2008 à 20:41
Salut

Le type float c# ou vb.net est un type approximatif (precision flottante)
alors que numeric est un type precis

et donc la conversion de l'un version l'autre pose probleme a ACCESS et sql serveur

Il faut
* soit convertir ta donnée avant de l'entree en base
* soit convertir ton champ de la base
* soit convertir ton type dans l'application
(l'utilisation de requete parametrées permet peut etre de convertir aussi le type)

Bon coding
0
madrid79 Messages postés 15 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 19 août 2008
9 août 2008 à 21:15
merci,
voilaje developpe une application en C# qui me permet de remplir une table d'une base de donnée sur sql server, j'ai utilisé une requette parametrée code;

 SqlCommand command = new SqlCommand("INSERT INTO [table_PPA]
// Paramètre
                command.Parameters.Add(new SqlParameter("@ID_project", SqlDbType.NVarChar, 50));
                command.Parameters.Add(new SqlParameter("@Duration_Estimate_PH_0", SqlDbType.Float));
  command.Parameters["@ID_project"].Value = textBox_project_nameppa.Text;

                if (textBox_Duration_Estimate_PH_0.Text != "")
                {
                    command.Parameters["@Duration_Estimate_PH_0"].Value = double.Parse(textBox_Duration_Estimate_PH_0.Text, System.Globalization.CultureInfo.InvariantCulture);
                }
                else command.Parameters["@Duration_Estimate_PH_0"].Value = System.DBNull.Value;,

............
quand je saisie sur mes textbox, des chiffre a des nombre de 4 est plus, cabug,

je ne sais comment resoudre ce probleme
merci de votre aide j'en ai besoion
0
nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Membre Dernière intervention 15 juillet 2011 37
9 août 2008 à 21:40
Je ne comprends pas ton code la partie la plus interressante est manquante
c'est a dire la requete

 SqlCommand command = new SqlCommand("INSERT INTO [table_PPA] ("ID_PROJECT,DURATION_ESTIMATE_PH_0) VALUES(@ID_project,@Duration_Estimate_PH_0)")

Il faut peut etre preciser la precision et la taille de ton parametre.

Ca bug c'est a dire le message est quoi
et regardes dans le profiler sql ce qui est reelement envoyé a sql server
0
madrid79 Messages postés 15 Date d'inscription lundi 28 juillet 2008 Statut Membre Dernière intervention 19 août 2008
9 août 2008 à 22:00
ma requete fonctionne j'ai pasmet toot le code
v'est just peut etre comme ta di la taille, pour que je puisse saisir des chiffe de 4 est plus
0
Rejoignez-nous