Inserer une date

Signaler
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006
-
Messages postés
81
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
7 février 2007
-
Salut tout le monde,
j'ai essayé d'insérer un champs de type DateTime dans une table de ma BD. Quand j'affiche les donnees de ma table j'ai pas la date que je choisis j'obtient: 1/1/1900 12:00:00 AM.
je fais cette instruction ci-dessous:INSERT INTO TRANSFERT (DATE_ENVOI,REMARQUE,DATE_DEBUT_PREVUE,DATE_FIN_PREVUE) VALUES(

" +
DateTime.Now.ToShortDateString+
",'" +
this.rEMARQUETextBox.Text +
"'," +
this.dATE_DEBUT_PREVUEDateTimePicker.Value.ToShortDateString() +
"," +
this.dATE_FIN_PREVUEDateTimePicker.Value.ToShortDateString() +
")

je ne vois pas ou se trouve mon erreur?
je vous remercie d'avance de vos reponses

5 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Salut,

Utilises des SqlParameter plutot que de concaténer des chaines pour ta requete.

Mx
MVP C# 
Messages postés
54
Date d'inscription
mercredi 14 juin 2006
Statut
Membre
Dernière intervention
29 août 2006

salut,
c'est un peu chaud je suis jamais passé par sqlparamater.Est ce qu'il y'aurait pas une autre solution me permettant d'inserer la bonne date ?
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Tiens, voila un petit exemple c'est tout bete, et bien plus securisé

<hr />try

{

   using (
SqlConnection connex =
new
SqlConnection(
"taChaineDeConnexion"))
   {
      connex.Open();

      string rq =
"INSERT INTO TRANSFERT (DATE_ENVOI,REMARQUE,DATE_DEBUT_PREVUE,DATE_FIN_PREVUE) VALUES( @dateNow, @remarque, @dateDebut, @dateFin)";

       using (
SqlCommand cmd =
new
SqlCommand(rq, connex))
      {
         cmd.Parameters.AddWithValue(
"@dateNow",
DateTime.Now);
         cmd.Parameters.AddWithValue(
"@remarque",
this.rEMARQUETextBox.Text);
         cmd.Parameters.AddWithValue(
"@dateDebut",
this.dATE_DEBUT_PREVUEDateTimePicker.Value.ToShortDateString());
         cmd.Parameters.AddWithValue(
"@dateFin",
this.dATE_FIN_PREVUEDateTimePicker.Value.ToShortDateString());
         cmd.ExecuteNonQuery();
      }
   }
}

catch (
SqlException se)


   // Catcher l'exception
}
<hr />

Petit conseil : donne de meilleurs noms a tes controles.
Par convention, on utilise 3 lettres pour le type de controle, puis le reste pour le nom
Pour ta TextBox par exemple cela donnerait : tbxRemarque

Mx
MVP C# 
Messages postés
81
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
7 février 2007
1
Bonjour,

Voilà, j'essaie de faire exactememnt la même chose, ... enfin bref ajouter la date du jour dans mon champs DateTime de ma base de donnée SQL Server.

J'utilise actuellement un string classique pour ma requête, je vais regarder pour utiliser ta solution. Mais bon mon problème ne vient pas de là.

Je passe à ma requête now.ToShortDateString()

now est un DateTime.Now, il a donc la date du jour.

Le problème est qu'avec le ToShortDateString(), la requête passe, mais la date mise dans la base de donnée est 1/1/1900
Bref pas la date du jour.

Quand je fais les tests directemente sur SQLServer en fait je dois passer la date sous forme 4569876 pour arriver à une date.

Mais voilà je ne trouve pas comment passer du format 26/10/2006 à 39016 qui m'insèrerait la bonne date.

Est-ce que vous pouvez m'aider ? Il y a t'il quelque chose que je loupe ?

Merci

Bibicool
Messages postés
81
Date d'inscription
lundi 6 septembre 2004
Statut
Membre
Dernière intervention
7 février 2007
1
Ok tu peux oulblier... je viens de trouver que ton code convertissait automatiquement et bien plus propre, je l'ai adapté et c'est parfait !

Merci...

Bibicool