Convertion des puissance de dix et datareader [Résolu]

Signaler
Messages postés
31
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
23 février 2009
-
Messages postés
31
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
23 février 2009
-
bonjour j'ai une os de derniere minute et faudrait que le probleme soit régler d'ici vendredi.

contexte:
a l'aide d'un datareader je lit une table dans sql server 2005, je prend toute les donnée de la table et je les met dans un tableau html que j'ai construit
(divers traitement des donnée s'execute pendant cette copie)

le probleme est que une colonne "valeur" est de type float et a des donnée de type 123,456e+006
durant la copie apparement mon programme 'saute' purement et simplement ces donnée
comment je peux les traitée.

mes variable sont declaré en "double" car il y a impossibilité de convertir en float (je n'y suis pas arriver)

voila mon code:

int nb = 1;
double valprec, val;
double periodeprec, periode;
string libelleprec, libelle;
string geoprec, geo;
double taux;
double var;
string print_erreur;
string significativite;


taux = 10;

libelleprec = "";
libelle = "";
geoprec = "";
geo = "";
periodeprec = 0;
periode = 0;
valprec = 0;
val = 0;
var = 0;
print_erreur = "";
significativite = "";

Response.Write("\");

Response.Write(\"----
\");

Response.Write(\"" + dr2.GetName(0) + ", \");
Response.Write(\"" + dr2.GetName(1) + ", \");
Response.Write(\"" + dr2.GetName(2) + ", \");
Response.Write(\"" + dr2.GetName(3) + ", \");
Response.Write(\"" + dr2.GetName(4) + ", \");
Response.Write(\"" + "Erreur générée" + ", \");
Response.Write(\"" + "Pourcentage de Variation" + ", \");

Response.Write(\"\");

Response.Write(\"----
\");

while (dr2.Read())
{
Response.Write(\"----
\");

if (dr2.IsDBNull(3))
{
Response.Write(\"" + dr2[0].ToString() + ", \");
Response.Write(\"" + dr2[1].ToString() + ", \");
Response.Write(\"" + dr2[2].ToString() + ", \");
Response.Write(\"" + "NULL" + ", \");
Response.Write(\"" + "NULL" + ", \");
var = 0;
print_erreur = \"pas de donnée valeur\";
valprec = 0;
}
else
{
if (dr2.IsDBNull(4))
{
significativite = \"NULL\";
}

Response.Write(\"" + dr2[0].ToString() + ", \");
libelle = dr2[0].ToString();
int comparelibelle = libelleprec.CompareTo(libelle);
if (comparelibelle == 0)
{
Response.Write(\"" + dr2[1].ToString() + ", \");
geo = dr2[1].ToString();
int comparegeo = geoprec.CompareTo(geo);
if (comparegeo == 0)
{

Response.Write(\"" + dr2[2].ToString() + ", \");
periode = Convert.ToDouble(dr2[2].ToString());
if (periodeprec != periode)
{
val = Convert.ToDouble(dr2[3].ToString());
if (valprec != 0)
{
var = ((val - valprec) / val) * 100;
if (var >= -taux)
{
if (var <= taux)
{
print_erreur = \"OK\";
Response.Write(\"" + dr2[3].ToString() + ", \");
}
else
{
print_erreur = \"Valeur a vérifier\";
Response.Write(\"" + dr2[3].ToString() + ", \");
}
}
else
{
print_erreur = \"valeur a vérifier\";
Response.Write(\"" + dr2[3].ToString() + ", \");
}
Response.Write(\"" + significativite + ", \");
}
else
{
Response.Write(\"" + dr2[3].ToString() + ", \");
Response.Write(\"" + significativite + ", \");
print_erreur = \"valeur de depart\";
var = 0;
}

}
else
{
Response.Write(\"" + dr2[3].ToString() + ", \");
Response.Write(\"" + significativite + ", \");
print_erreur = \"valeur de depart\";
var = 0;
}
}
else
{
Response.Write(\"" + dr2[2].ToString() + ", \");
Response.Write(\"" + dr2[3].ToString() + ", \");
Response.Write(\"" + significativite + ", \");
print_erreur = \"valeur de depart\";
var = 0;
}
}
else
{
Response.Write(\"" + dr2[1].ToString() + ", \");
Response.Write(\"" + dr2[2].ToString() + ", \");
Response.Write(\"" + dr2[3].ToString() + ", \");
Response.Write(\"" + significativite + ", \");
print_erreur = \"valeur de depart\";
var = 0;
}
valprec = Convert.ToDouble(dr2[3].ToString());
}
string var_modif = var.ToString(\"0.##\");
Response.Write(\"" + print_erreur.ToString() + ", \");

Response.Write(\"" + var_modif + ", \");
Response.Write(\"\");

nb++;
/*
libelleprec = libelle;
geoprec = geo;
periodeprec = periode;
valprec = val;
*/

libelleprec = Convert.ToString(dr2[0].ToString());
geoprec = Convert.ToString(dr2[1].ToString());
periodeprec = Convert.ToDouble(dr2[2].ToString());
//valprec = Convert.ToDouble(dr2[3].ToString());

}
Response.Write(\"\");

Response.Write(\"----
\");
Response.Write(\"" + nb + " enregistrements"+", \");
Response.Write(\"\");

Response.Write("
");
dr2.Close();

}
catch (SqlException sqlerr)
{
Response.Write("<table>");
Response.Write("
" + sqlerr.Message.ToString());
}
// Fermeture connection
connexion.Close();

merci d'avance de vos réponse
A voir également:

2 réponses

Messages postés
31
Date d'inscription
mardi 6 novembre 2007
Statut
Membre
Dernière intervention
23 février 2009

bonjour

bien la solution est simple j'ai trouver:
en faite j'ai dit une betise dans mon ennoncé:


le probleme est que une colonne "valeur" est de type float et a des donnée de type 123,456e+006


dans ma colonne valeur mes donnée était de type varchar(50)
donc la solution simple est de changer le type de la colonne en float, et apparement ca regle le probleme

voila désoler d'avoir déranger

a++ all
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
Est-ce que tu as une erreur de type FormatException ? Si c'est le cas c'est que c'est lié à ton séparateur décimal.

Si tu n'as pas d'exception c'est que tu rentres dans un des cas que tu as géré.

::|The S@ib|::
MVP C#.NET