Fo0Zie
Messages postés95Date d'inscriptionlundi 11 février 2008StatutMembreDernière intervention 8 juin 2009
-
8 juin 2009 à 16:02
Fo0Zie
Messages postés95Date d'inscriptionlundi 11 février 2008StatutMembreDernière intervention 8 juin 2009
-
8 juin 2009 à 17:15
Bonjour à tous !
J'ai une requete paramété qui est comme ceci :
SELECT nom FROM Historique WHERE date BETWEEN '01/@mois/@year' AND '31/@mois/@year'
this.maCmd.Parameters.Add("@mois", SqlDbType.Int);
this.maCmd.Parameters[0].Value = numMois + 1;
this.maCmd.Parameters.Add("@year", SqlDbType.Int);
this.maCmd.Parameters[1].Value = DateTime.Now.Year;
Mais mon between ne passe pas, quelqu'un serais t'il comment faire, car ma requête est bonne.
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 8 juin 2009 à 16:58
Bah dans le code que je t'ai fourni, j'utilise le constructeur de DateTime(int Year, int Month, int Day), donc pas de problème.
Pour que ça fasse exactement la même chose que ton code, il faut remplacer les SqlParameters par
this.maCmd.Parameters.Add(new SqlParameter("@debut", new DateTime(DateTime.Now.Year, numMois + 1, 1)));
this.maCmd.Parameters.Add(new SqlParameter("@fin", new DateTime(DateTime.Now.Year, numMois + 1,
DateTime.DaysInMonth(DateTime.Now.Year, numMois + 1))));
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
krimog
Messages postés1860Date d'inscriptionlundi 28 novembre 2005StatutMembreDernière intervention14 février 201549 8 juin 2009 à 16:44
"SELECT nom FROM Historique WHERE date BETWEEN @debut AND @fin";
this.maCmd.Parameters.Add(new SqlParameter("@debut", new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1)));
this.maCmd.Parameters.Add(new SqlParameter("@fin", new DateTime(DateTime.Now.Year, DateTime.Now.Month,
DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month))));
Si je ne me trompe pas, le constructeur de SqlParameter met automatiquement le SqlDbType selon l'object que tu lui transmets.
De plus, les datetime en SQL ne s'utilisent pas (ou pas toujours ?) avec de quote. Je sais que parfois, c'est #01/01/2009#. C'est justement l'intérêt d'utiliser des requêtes paramétrées, c'est que tu n'as pas besoin de connaître la façon dont ton type de données doit être écrit en SQL.
Krimog : while (!(succeed = try())) ;
- NON, "LE BAR" n'est PAS un langage de programmation ! -
Fo0Zie
Messages postés95Date d'inscriptionlundi 11 février 2008StatutMembreDernière intervention 8 juin 20091 8 juin 2009 à 16:53
En faite, je veux tester ma date à partir d'une liste déroulante qui contient les mois.
Dans ma liste déroulante j'ai tous les mois de l'année, c'est pour cela que j'utilise 2 paramètres. Pour les mois et pour l'année en cours.
Les quotes c'est en testant ma requete sous SQL server.