Problème Date sql server, ASP.NET [Résolu]

Messages postés
10
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
22 avril 2011
- - Dernière réponse : christmajesty
Messages postés
2
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
18 mars 2012
- 18 mars 2012 à 12:26
Bonjour a tous!
Encore un autre problème
J'ai un formulaire sous ASP.NET avec un champ pour la Date. L'orsque je récupère la date et que je veux l'insérer dans la table correspondante (en appelant la procédure stocker d'insertion) J'obtiens une erreur l'osque les jours dans cette date dépasse 12. J'ai compris que SQL server utilise les dates En (MM/DD/YYYY) c'est a dire que mes jours sont placé à la place des mois! Comment faire pour changer (MM/DD/YYYY) en (DD/MM/YYYY) ? J'ai fais quelque recherches mais je n'y ai rien compris!


Voila un exemple de ce que j'ai trouver :
set dateformat 'mdy'
select Convert (datetime, '1/2/2008')
Mais je ne vois pas où est ce que je dois mettre ce code!

Je précise aussi que mes dates sont déclaré dans SQL de type DATE.
Afficher la suite 

13 réponses

Meilleure réponse
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
3
Merci
http://www.labo-dotnet.com/post/Proteger-vos-requetes-SQL-a-le28099aide-des-requetes-parametrees.aspx

De plus la requete devient preparée et donc
le plan d'execution ne change pas, donc une amelioration des performances.

select nom from personne where age = @age
est identique pour tous les ages
par rapport
a
select nom from personne where age = 10
select nom from personne where age = 20
--> plan d'execution different


bon dev

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de nhervagault
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
3
Merci
Salut,

as-tu essayer de monter des objets DateTime pour ensuite les passer au AddWithValue() ? Du genre :
DateTime dtp = DateTime.ParseExact(TxtDatePrevue.Text, "dd/MM/yyyy", null);
DateTime dtr = DateTime.ParseExact(TxtDateReel.Text, "dd/MM/yyyy", null);
cmd5.Parameters.AddWithValue("@DATEPREVUEL", dtp);
cmd5.Parameters.AddWithValue("@DATEREELL", dtr);


Tiens nous au courant si ça ne change rien.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 196 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_jopop
Messages postés
6063
Date d'inscription
dimanche 13 avril 2003
Statut
Modérateur
Dernière intervention
15 juillet 2011
22
0
Merci
Salut,

Si tu ne veux pas avoir de probleme avec les dates
tu dois utiliser les requetes paramétrées et ado.net les gera tres bien.
Commenter la réponse de nhervagault
Messages postés
10
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
22 avril 2011
0
Merci
Qu'est ce que tu veux dire par requêtes paramétrées?
Commenter la réponse de MzSrH
Messages postés
10
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
22 avril 2011
0
Merci
@nhervagault Merci beaucoup pour ta réponse. Cette méthode a l'aire très intéressante en effet. Le seul problème c'est que moi mon SqlCommand ne recoi pas une requête, mais le nom de la procédure stocké d'insertion, voici un extrait de mon code :

cmd5 = New SqlCommand
Connection()
cmd5.CommandType = CommandType.StoredProcedure
cmd5.CommandText = "SP_INSERT_VERSION"
cmd5.Connection = con
cmd5.Parameters.Clear()
cmd5.Parameters.AddWithValue("@DATEPREVUEL", TxtDatePrevue.Text)
cmd5.Parameters.AddWithValue("@DATEREELL", TxtDateReel.Text)
...

donc je ne peux pas construire la chaîne de commande SqlCommand avec des paramètres.
Désolé pour le dérangement, je ne suis que débutante et Merci encore
Commenter la réponse de MzSrH
Messages postés
10
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
22 avril 2011
0
Merci
Salut jopop ^^
Merci beaucoup pour ta réponse ça ma beaucoup aidé. Voila j'ai fais comme tu a dis et ca marche très bien
Voila un exemple de ce que ca donne en ASP.NET si quelqu'un a le même problème :
ASP.NET
Imports System.Globalization

   Dim dtp As New DateTime
   Dim dtr As New DateTime
   Dim Culture As IFormatProvider
   ' For French Culture Pass fr-Fr
   Culture = New CultureInfo("fr-Fr", True)

        dtp = DateTime.ParseExact(TxtDate1.Text, "dd/MM/yyyy", Culture)
        dtr = DateTime.ParseExact(TxtDate2.Text, "dd/MM/yyyy", Culture)
        cmd.Parameters.AddWithValue("@DATE1", dt1)
        cmd.Parameters.AddWithValue("@DATE2", dt2)

Bonne journée a tous
Commenter la réponse de MzSrH
Messages postés
10
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
22 avril 2011
0
Merci
Oups correction (j'ai oublié de changé le nom de toutes les variables)

Imports System.Globalization

   Dim dt1 As New DateTime
   Dim dt2 As New DateTime
   Dim Culture As IFormatProvider
   ' For French Culture Pass fr-Fr
   Culture = New CultureInfo("fr-Fr", True)

        dt1 = DateTime.ParseExact(TxtDate1.Text, "dd/MM/yyyy", Culture)
        dt2 = DateTime.ParseExact(TxtDate2.Text, "dd/MM/yyyy", Culture)
        cmd.Parameters.AddWithValue("@DATE1", dt1)
        cmd.Parameters.AddWithValue("@DATE2", dt2)

voila ^^
Commenter la réponse de MzSrH
Messages postés
16
Date d'inscription
lundi 14 mai 2007
Statut
Membre
Dernière intervention
14 mai 2011
0
Merci
comment je peux le faire en vb/.net
Commenter la réponse de josella
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
c'est déjà du VB.NET, josella ;)
Commenter la réponse de cs_jopop
Messages postés
16
Date d'inscription
lundi 14 mai 2007
Statut
Membre
Dernière intervention
14 mai 2011
0
Merci
ah wi c vrai j'ai lu celui du c# mais pas celui de asp.net
Merci :D
Commenter la réponse de josella
Messages postés
1540
Date d'inscription
lundi 26 mai 2003
Statut
Membre
Dernière intervention
1 août 2013
11
0
Merci
A l'occasion t'auras remarqué que y'a pas grande différence entre les deux, et que la transcription est assez aisée ;)
Commenter la réponse de cs_jopop
Messages postés
10
Date d'inscription
samedi 10 avril 2010
Statut
Membre
Dernière intervention
22 avril 2011
0
Merci
Oui effectivement y'a pas grande différence, et si une débutante (moi ) a réussi a le faire, alors tout le monde peut il suffi de fouiller un peut, Google est notre ami pas vrai?
Bonne journée a tous
Commenter la réponse de MzSrH
Messages postés
2
Date d'inscription
dimanche 17 janvier 2010
Statut
Membre
Dernière intervention
18 mars 2012
0
Merci
THX JOPOP JE VAIS ESSAYER PARCE QUE J'AI EU LE MEME PROBLEME ET JE TE FERAI UN FEEDBACK..THX
Commenter la réponse de christmajesty