Problème de dates

Résolu
fatikab Messages postés 9 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 22 mai 2013 - 21 mai 2013 à 11:41
fatikab Messages postés 9 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 22 mai 2013 - 22 mai 2013 à 09:42
Bonjour tout le monde ,

Je suis entrain de développer une application en C# et ça fait deux jours que je suis bloqué sur un point : j essai d'inserer dans un champ de type smalldatetime une valeur que je récupère d'un datetimepicker donc le problème c'est qu'il y a l heure , min et secondes que je dois éliminer pour celà j ai essayé de faire de deux manières mais ça marche pas

1) datetime date=( valeur de datetimepicker ).value.Date;
j ai l erreur suivante : incorrect syntaxe near "00"

2) string date=( valeur de datetimepicker).value.ToShortdateString();

et là je trouve dans ma base de données la valeur '01/01/1900' .

svplé s'il qlqn pourrait m aider ...

9 réponses

yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
21 mai 2013 à 22:26
Re,

cmd3 = connection.CreateCommand(); 

cmd3.CommandText = "insert into etat_equipes (nom_etat,motif_etat,date_debut,Nom_equipe) values ('" + etat.Text + "','" + motif.Text + "', @paramDate1, '" + equi + "' )"; 

SqlParameter dated = new SqlParameter("@paramDate1", SqlDbType.SmallDateTime); 
dated.Value = smallDate1; 

cmd3.Parameters.Add(dated);

Reader= cmd3.ExecuteReader(); 


bye...
3
Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 656
21 mai 2013 à 12:23
Bonjour

dans cette discussion en anglaisle gars a l'aire de dire qu'il faut que le format de la date soit mm/dd/yyyy.



Whismeril
0
fatikab Messages postés 9 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 22 mai 2013
21 mai 2013 à 12:29
Merci tout d'abord pour votre réponse
sinon tu parles du format dans le datetimepicker ?
0
fatikab Messages postés 9 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 22 mai 2013
21 mai 2013 à 13:40
Ree ,
Personne n'a une idée ?
0

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

Posez votre question
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
21 mai 2013 à 13:41
Salut,

le smalldatetime supporte les heures/minutes/secondes.
il faut juste donner le bon format au dateTimePicker :

Par exemple :

// Dans le FormLoad
dateTimePicker1.CustomFormat = "dd/MM/yyyy HH:mm:ss";

// Sur un bouton, récupère la date et passe au SLQ
DateTime laDate = dateTimePicker1.Value;

// ici 2 solution pour passer au sql
using System.Data.SqlTypes;

// affecte directement un SqlDateTime
SqlTypes.SqlDateTime smallDate = laDate;

// ou passe par un SqlString
SqlTypes.SqlString smallDateStr = DateTime.ParseExact(
    dt.ToString("dd/MM/yyyy HH:mm:ss"),
    "dd/MM/yyyy HH:mm:ss",
    null).ToString("dd/MM/yyyy HH:mm:ss");

// Du coup, les 2 marchent avec SqlParameters puisque Value = Object
SqlParameter pDate1 = new SqlParameter("@paramDate", SqlDbType.SmallDateTime);
pDate1.Value = smallDate;

SqlParameter pDate2 = new SqlParameter("@paramDateStr",
SqlDbType.SmallDateTime);
pDate2.Value = smallDateStr;


bye...
0
fatikab Messages postés 9 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 22 mai 2013
21 mai 2013 à 14:26
Merci bcccp yann_lo_san
j ai essayé ta solution mais il me génère une erreur , c est qu'il reconnait pas @paramdate ? il dit que la variable @paramdate doit etre déclarée ..
0
yann_lo_san Messages postés 1137 Date d'inscription lundi 17 novembre 2003 Statut Membre Dernière intervention 23 janvier 2016 26
21 mai 2013 à 15:11
Re,

houla, attention,

@paramDate et @paramDateStr sont des exemples de création de SqlParameters.
C'est normal qu'ils ne soient pas reconnus, il faut que tu mettes les vrais nom de paramètres si tu utilises une procédure stockée sql, ou juste mettre ceux-ci dans la requete :

// requete
string maRequete "SELECT * FROM T WHERE champDate @paramDate";
SqlParameter pDte = new SqlParameter("@paramDate");//<----------- ICI
uneSqlCommand.Parameters.Add(pDte);

// ou Procédure stockée
string maProc = "uneprocedureStockee";
SqlParameter pDte = new SqlParameter("@leVraiNomDuParam");//<---------- ICI
uneSqlCommand.Parameters.Add(pDte);



bye...
0
fatikab Messages postés 9 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 22 mai 2013
21 mai 2013 à 17:48
RE
je suis vraiment désolée mais j ai pas compris prcq j ai jamais travaillé avec "sqlparameter" je travaille avec les Reader , voici mon code :

date1.CustomFormat = "dd/MM/yyyy HH:mm:ss";
DateTime datedd = date1.Value;
System.Data.SqlTypes.SqlDateTime smallDate1 = datedd;

SqlParameter dated = new SqlParameter("@paramDate1", SqlDbType.SmallDateTime);
dated.Value = smallDate1;

connection.open();
cmd3 = connection.CreateCommand();
cmd3.CommandText = "insert into etat_equipes (nom_etat,motif_etat,date_debut,Nom_equipe) values ('" + etat.Text + "','" + motif.Text + "'," + dated + ",'" + equi + "' )";
Reader= cmd3.ExecuteReader();

par quoi dois je remplacer @paramDate1 ?
0
fatikab Messages postés 9 Date d'inscription mercredi 27 avril 2011 Statut Membre Dernière intervention 22 mai 2013
22 mai 2013 à 09:42
Ohhh ça marche , merci bccccccp tu m'as bcp aidé !!
0
Rejoignez-nous