[.NET c#] exeption et probleme de cast

exeption et probleme de cast [.NET c#] - C#/.NET managed - Programmation

Marsh Posté le 22-07-2005 à 11:03:18    

Bonjour a tous,
 
j'ai une fonctionne qui doit me retourner un float (qui est le resultat d'une requete SQL)
 
voici ma fonction:
 

Code :
  1. public float ca_total(int ReportId){
  2.       SqlCommand MyCommand;
  3.       SqlDataReader MyReader;
  4.       float CartSum=0;
  5.       MyCommand = new SqlCommand("SELECT SUM(wc.MontantPanier) FROM webtracking_ca wc INNER JOIN webtracking_stats ws ON wc.IdStats = ws.id WHERE ws.ReportId = @ReportId",MyConnection);
  6.       MyCommand.Parameters.Add(new SqlParameter("@ReportId", SqlDbType.Int, 100));
  7.       MyCommand.Parameters["@ReportId"].Value = ReportId;
  8.        
  9.       MyReader = MyCommand.ExecuteReader();
  10.       if (MyReader.HasRows){
  11.         MyReader.Read();
  12.         if (MyReader.IsDBNull(0))
  13.             CartSum = 0;
  14.         else
  15.             CartSum = MyReader.GetFloat(0);
  16.       }
  17.       Response.Write("<br>"+CartSum);
  18.       MyReader.Close();
  19.       return CartSum;
  20.     }


 
Le code est a priori bon, mais j'ai un probleme avec ma variable CartSum. En effet lorsque je la declare en int ca fonctionne (si je modifie aussi le CartSum = MyReader.GetFloat(0);
en CartSum = MyReader.Getint32(0);)
 
mais lorsque elle est en float ca ne marche pas. J'ai une exeption "Specified cast is not valid." sur la ligne CartSum = MyReader.GetFloat(0);
 
Je vois vraiment pas ou est le probleme ...
Merci de votre aide.
 
PS: je debute en c# donc si vous avez aussi des conseils a me donner au niveau de ma fonction je suis preneur!

Reply

Marsh Posté le 22-07-2005 à 11:03:18   

Reply

Marsh Posté le 22-07-2005 à 11:52:48    

Ben à priori si ça marche pas c'est que c'est pas un float qui est retourné par ta requête.
 
Ton champ MontantPanier est il bien un float ?

Reply

Marsh Posté le 22-07-2005 à 12:02:51    

MontantPanier est bien un float de 8.
Et ma requete comme tu le vois additionne juste des float donc je vois vraiment pas se qui bug ....

Reply

Marsh Posté le 22-07-2005 à 12:20:25    

Fait voir un Response.Write( MyReader[0].GetType().ToString() ), il te donnera le type du champ.
 
Si c'est un float, il y a réellement un problème.


Message édité par Lanza le 22-07-2005 à 12:21:26
Reply

Marsh Posté le 22-07-2005 à 14:22:28    

Je me demande si mon probleme vient pas du fait que les float en c# s'ecrivent avec un . et en sql server avec une ,
 
Si oui commet faire pour que ca marche :)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed