Problème de dates [Résolu]

Messages postés
9
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
22 mai 2013
- - Dernière réponse : 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 ...
Afficher la suite 

9 réponses

Meilleure réponse
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17
3
Merci
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...

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 122 internautes nous ont dit merci ce mois-ci

Commenter la réponse de yann_lo_san
Messages postés
13635
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
22 août 2019
298
0
Merci
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
Commenter la réponse de Whismeril
Messages postés
9
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
22 mai 2013
0
Merci
Merci tout d'abord pour votre réponse
sinon tu parles du format dans le datetimepicker ?
Commenter la réponse de fatikab
Messages postés
9
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
22 mai 2013
0
Merci
Ree ,
Personne n'a une idée ?
Commenter la réponse de fatikab
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17
0
Merci
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...
Commenter la réponse de yann_lo_san
Messages postés
9
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
22 mai 2013
0
Merci
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 ..
Commenter la réponse de fatikab
Messages postés
1137
Date d'inscription
lundi 17 novembre 2003
Statut
Membre
Dernière intervention
23 janvier 2016
17
0
Merci
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...
Commenter la réponse de yann_lo_san
Messages postés
9
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
22 mai 2013
0
Merci
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 ?
Commenter la réponse de fatikab
Messages postés
9
Date d'inscription
mercredi 27 avril 2011
Statut
Membre
Dernière intervention
22 mai 2013
0
Merci
Ohhh ça marche , merci bccccccp tu m'as bcp aidé !!
Commenter la réponse de fatikab