DateTime en culture FR

SaiYan5102 Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 15 mars 2011 - 14 déc. 2009 à 10:18
SaiYan5102 Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 15 mars 2011 - 16 déc. 2009 à 15:37
Bonjour,

Je souhaite enregistrer une date dans ma base de données au format FR.

Pour cela je suis les indications du msdn pour changer la culture du DateTime, comme ceci :

CultureInfo fr = new CultureInfo("fr-FR");
Thread.CurrentThread.CurrentCulture = fr;
Thread.CurrentThread.CurrentUICulture = fr;
String format = "dd/MM/yyyy hh:mm:ss";
string dateDeb = "14/01/2009 00:00:00";
DateTime dt = DateTime.ParseExact(dateDeb, format, fr.DateTimeFormat);

_command.CommandText = "INSERT INTO reservation VALUES('', '" + Code + "', '" + Demandeur + "', '" + dt + "', '', '', '', '" + Objet + "', '', '', '', '', '" + Matricule + "')";


J'ai essayé un peu plusieurs manip de ce type mais au moment de cliquer sur le bouton envoyer du formulaire de ma page aspx j'obtiens toujours l'erreur suivante : The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.

Alors que avec cette date : 12/01/2009 ca passe donc c'est bien mon format de date qui n'est pas en culture française.

Pourquoi ?

J'ai aussi configuré le Web.config :

<system.web>
    <globalization culture="fr-FR" uiCulture ="fr-FR"/>


Ainsi que ma page aspx :

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Formu_res.aspx.cs" Inherits="SystReservation.Formu_res" Culture="fr-FR" UICulture="fr-FR" %>

10 réponses

krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
14 déc. 2009 à 10:30
Salut

Normalement, si tu utilises les requêtes paramétrées, tu n'as pas à t'embêter :

_command.CommandText = "INSERT INTO reservation VALUES("..., @maDateTime, ...");
_command.Parameters.Add(new SqlParamter("@maDateTime", dt));


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
0
SaiYan5102 Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 15 mars 2011 1
14 déc. 2009 à 11:13
Effectivement ça passe mieux.
Donc là j'insérais juste une date test dans ma BDD.
Par contre je ne comprends toujours pas pourquoi je n'arrive pas à récupérer la date inscrite dans la TextBox (associée à un CalendarExtender) de ma page aspx.
Peux tu m'aider krimog ? En faite le texte de ma TextBox par défaut est "Cliquez ici". L'utilisateur clique et ça fait apparaitre en dessous de cette TextBox un CalendarExtender, l'utilisateur choisi sa date et ça l'inscrit dans la TextBox au format dd/MM/yyyy. Donc pour moi au moment où l'utilisateur envoi les données du formulaire maTextBox.Text est égale à "12/01/2009" (par exemple) or je récupère toujours "Cliquez ici".
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
14 déc. 2009 à 11:46
Là, je vais avoir besoin d'un bout de code pour t'aider.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
0
SaiYan5102 Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 15 mars 2011 1
14 déc. 2009 à 13:55
Voici les morceaux de codes concernés :

Page aspx

Cliquez ici







Code CS

protected void btValidation_Click(object sender, EventArgs e)
{
    string dateDeb = datedeb.Text; // Ce qui récupère "Cliquez ici" et non la date sélectionnée dans le CalendarExtender.

    ...
}
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
14 déc. 2009 à 14:13
Essaye un truc du genre TextBox1_CalendarExtender.SelectedDate

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
0
SaiYan5102 Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 15 mars 2011 1
14 déc. 2009 à 14:40
J'avais déjà essayé ça et apparemment ça ne récupère rien, car quand j'affiche c'est vide.
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
14 déc. 2009 à 15:40
Personnellement, je ne peux pas t'aider. Je crois qu'il s'agit d'AJAX.net et je ne connais pas du tout cette technologie. Si tu ne trouves pas de réponse ici, essaie sur le forum asp / asp.net.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé ! -
0
SaiYan5102 Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 15 mars 2011 1
14 déc. 2009 à 16:20
Ok je te remercie, si je ne trouve pas je posterai là bas demain.
0
SaiYan5102 Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 15 mars 2011 1
16 déc. 2009 à 11:53
J'ai trouvé le problème, apparemment c'est l'attribut ReadOnly en étant sur true il ne me permet pas de récupérer la valeur de la TextBox alors que si je le met sur false c'est bon. Bizarre...et ça m'embête un peu que l'utilisateur puisse modifier le champ date. Je vais devoir ajouter une regex en JS et avec les dates c'est contraignant, les mois, les années bissextiles :s. Enfin bon je trouve quand même cela bizarre.
0
SaiYan5102 Messages postés 69 Date d'inscription vendredi 20 novembre 2009 Statut Membre Dernière intervention 15 mars 2011 1
16 déc. 2009 à 15:37
Problème résolu !

Il ne fallait pas mettre la TextBox en ReadOnly du côté client mais le faire du côté serveur ! C'est à dire dans le code behind comme ceci :

maTextBox.Attributes.Add("readonly", "readonly"); 
0
Rejoignez-nous