IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Probleme de conversion


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 12
    Par défaut Probleme de conversion
    Bonsoir les amis

    j'ai une base sous sql server 2005 qui contient une table dans la quelle je veux insérer quelque donnée ( date_depart , date_ retour ) qui sont datetime

    sous visual studio voila mon code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    DateTime dd = Convert.ToDateTime(TextBox9.Text);
    DateTime dr = Convert.ToDateTime(TextBox10.Text);
     
    string insertString = @"insert into mission (objet_mission,datedebut_m, datefin_m)
                     values ('" + textbox3.text + '" , '" + dd + "' , '" + dr +"')";
     
                SqlCommand cmd = new SqlCommand(insertString, cnx);
                cmd.ExecuteNonQuery();

    alors que lors de l'exécution j'ai ce problème :

    The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
    merci

  2. #2
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Salut,

    La tentative de conversion de la saisie génère une erreur car tu ne précises pas la culture (01/02/2010 signifie 1er février en français mais 2 janvier en anglais). Utilise un calendar. Ou bien fit un try...catch. En cas d'echec tu envois un message à l'internaute disant que sa date n'est pas au format attendu.

    Sinon, utilise des procédures stockées et tu sera définitivement tranquille.

    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  3. #3
    Membre averti
    Inscrit en
    Février 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 12
    Par défaut
    Citation Envoyé par Immobilis Voir le message
    Salut,

    La tentative de conversion de la saisie génère une erreur car tu ne précises pas la culture (01/02/2010 signifie 1er février en français mais 2 janvier en anglais). Utilise un calendar. Ou bien fit un try...catch. En cas d'echec tu envois un message à l'internaute disant que sa date n'est pas au format attendu.

    Sinon, utilise des procédures stockées et tu sera définitivement tranquille.

    A+
    j'utilise déjà un calendrier mais ce qui me rend dingue c'est que quand j'exécute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    string insertString = @"insert into mission (objet_mission,datedebut_m, datefin_m)
                     values ('" + textbox3.text + '" , '" + dd + "' , '" + dr +"')";
     
                SqlCommand cmd = new SqlCommand(insertString, cnx);
                cmd.ExecuteNonQuery();
    l'exécution génère une l'erreur.

    mais quand j'exécute
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    string insertString = @"insert into mission (datedebut_m, datefin_m)
                     values ('" + dd + "' , '" + dr +"')";
     
                SqlCommand cmd = new SqlCommand(insertString, cnx);
                cmd.ExecuteNonQuery();
    l'insertion s'effectue sans au-qu'un problème.


    voila les champs de ma table

    objet_mission nvarchar(50)
    datedebut_m datetime
    datefin_m datetime

  4. #4
    Membre Expert Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Par défaut
    Pour ton premier exemple, dot net n'est pas supposé savoir que ta string est une date en fait.

    Pour les deux exemples, c'est à bannir ce genre d'insertion en sql direct. Utilises au moins des requêtes paramétrées. Sinon c'est la porte ouverte au sql injection.

  5. #5
    Membre averti
    Inscrit en
    Février 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 12
    Par défaut
    Citation Envoyé par Arthis Voir le message
    Pour ton premier exemple, dot net n'est pas supposé savoir que ta string est une date en fait.
    j'ai rien compris

  6. #6
    Expert confirmé
    Avatar de Immobilis
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    6 559
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 559
    Par défaut
    Citation Envoyé par genieship Voir le message
    j'utilise déjà un calendrier mais ce qui me rend dingue c'est que quand j'exécute

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    string insertString = @"insert into mission (objet_mission,datedebut_m, datefin_m)
                     values ('" + textbox3.text + '" , '" + dd + "' , '" + dr +"')";
     
                SqlCommand cmd = new SqlCommand(insertString, cnx);
                cmd.ExecuteNonQuery();
    l'exécution génère une erreur.
    La coloration syntaxique du forum montre l'erreur. Si le code que tu donnes est reelement celui que tu utilises, il y a une faute là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    '" + textbox3.text + '"
    La quote est mal placée
    textbox3.text + '"
    A+
    "Winter is coming" (ma nouvelle page d'accueil)

  7. #7
    Membre averti
    Inscrit en
    Février 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 12
    Par défaut
    Ah Oki merci

    et le problème est résolu à l'aide des Procédures Stockée.

  8. #8
    Membre du Club
    Homme Profil pro
    Inscrit en
    Août 2009
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Août 2009
    Messages : 8
    Par défaut
    Merci beaucoup ça marche bien

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. probleme de conversion
    Par hay2006 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 19/12/2005, 10h02
  2. probleme de conversion float en int
    Par murreya dans le forum C++
    Réponses: 2
    Dernier message: 17/12/2005, 15h27
  3. [datapump] probleme de conversion d'une base paradox
    Par plante20100 dans le forum Bases de données
    Réponses: 4
    Dernier message: 04/11/2005, 18h39
  4. Probleme de conversion de dates
    Par manu00 dans le forum Langage
    Réponses: 4
    Dernier message: 29/05/2005, 00h00
  5. [Math][Integer] Problème de conversion
    Par deathwing dans le forum API standards et tierces
    Réponses: 8
    Dernier message: 11/05/2004, 17h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo