DateTime en culture FR

Signaler
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2011
-
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2011
-
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

Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
49
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é ! -
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2011
1
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".
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
49
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é ! -
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2011
1
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.

    ...
}
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
49
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é ! -
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2011
1
J'avais déjà essayé ça et apparemment ça ne récupère rien, car quand j'affiche c'est vide.
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
49
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é ! -
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2011
1
Ok je te remercie, si je ne trouve pas je posterai là bas demain.
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2011
1
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.
Messages postés
69
Date d'inscription
vendredi 20 novembre 2009
Statut
Membre
Dernière intervention
15 mars 2011
1
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");