Affichage d'une date à partir d'une requete [Résolu]

Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
-
Bonjour,
Actuellement je développe une application vb 2008
maintenant mon problème et l'affichage d'un datetimepiker à partir d'une recherche que j'exécute avec le code si-dessous , je précise que ce code s'exécute sans probléme lorsqu'il s'agis d'un autre critaire de recherche.
Merci d'avance pour votre aide


   Dim connexion As New SqlConnection

        connexion.ConnectionString = "Data Source=.\sqlexpress;Initial Catalog=billet;Integrated Security=True"
        connexion.Open()

        Dim strRequete As String = "SELECT navire_traverse,datedep_traverse, sens_traverse FROM traverse WHERE datedep_traverse = '#" & DateTimePicker2.Text & "#'"


        Dim dtt As DataTable
        Dim oSqlDataAdapter As New SqlDataAdapter(strRequete, connexion)
        Dim oDataSet As New DataSet("traverse")
        oSqlDataAdapter.Fill(oDataSet, "traverse")
        dtt = oDataSet.Tables("traverse")


        ComboBox1.Text = oDataSet.Tables("traverse").Rows(Place_Enregistrement).Item(0)
        DateTimePicker1.Text = oDataSet.Tables("traverse").Rows(Place_Enregistrement).Item(1)
        ComboBox4.Text = oDataSet.Tables("traverse").Rows(Place_Enregistrement).Item(2)

        oDataSet.Clear()
Afficher la suite 

4 réponses

Messages postés
14590
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 novembre 2019
137
0
Merci
Bonsoir,

SqlConnection (Donc SQL Server)
WHERE datedep_traverse = '#" & DateTimePicker2.Text & "#'"
(retranscrit ça donnerair : '#31/12/2013#' )

Es-tu sûr que c'est comme ça que la date doit être formatée pour SQL Server ?
De plus, selon la localisation de ton PC, le format de la date change, donc utiliser le .Text n'est pas une bonne idée.
DateTime.ToString(...)
cs_mohellebi
Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
-
Bonjour,
d'abord merci pour votre repense
en fait la date est bien jj/mm/aaaa, ensuite pour les dièses je ne sais pas exactement, c'est sur le net que j'ai pu trouver ça.
j'explique un peu plus, j ai réglé la propriété format de mon DateTimePicker à short qui veut dire jj/mm/aaaa au même format que sql serveur, ensuite j'exécute avec succès ma close INSERT pour l'insertion des données, en revanche je n'arrive toujours pas à exécuter l affichage .
Commenter la réponse de NHenry
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46
0
Merci
Salut

utilise une requete parametrée
 connexion.ConnectionString = "Data Source=.\sqlexpress;Initial Catalog=billet;Integrated Security=True"
connexion.Open()

Dim command As New sqlcommand
Dim dtt As DataTable
Dim ObjetDataSet As New DataSet
command.Connection = Connection
command.CommandText = "SELECT navire_traverse,datedep_traverse, sens_traverse FROM traverse WHERE datedep_traverse = [?] ; "

Try
command.Parameters.Add("?", OleDbType.Date).Value = DateTimePicker2.Text
ObjetDataAdapter = New OleDbDataAdapter(command)
Dim oSqlDataAdapter As New SqlDataAdapter(command)
Dim oDataSet As New DataSet("traverse")
oSqlDataAdapter.Fill(oDataSet, "traverse")
dtt = oDataSet.Tables("traverse")

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try
PapyNormand
Messages postés
27
Date d'inscription
samedi 7 août 2010
Statut
Membre
Dernière intervention
16 janvier 2014
1 -
Pourquoi utiliser un OledbDataAdapter avec un objet SqlCommand ?
SqlCommand et SqlConnection ( espace de nom Sysyem.Data.SqlClient ) ont été conçus pour une utilisation avec .Net SQL Server Data Provider qui n'a rien à voir avec OLEDB. Voir
http://msdn.microsoft.com/fr-fr/library/a6cd7c08(v=vs.110).aspx
Vous pourrez lire notamment :
"Le fournisseur de données .NET Framework pour SQL Server (SqlClient) utilise son propre protocole pour communiquer avec SQL Server. Il est léger et ses performances sont élevées car il est optimisé de façon à accéder directement à SQL Server, sans ajout d'une couche OLE DB ou ODBC (Open DataBase Connectivity)"
Pour l'emploi des 2 symbols # entourant une date voir
http://msdn.microsoft.com/fr-fr/library/dzy06xhf(v=vs.110).aspx
http://msdn.microsoft.com/fr-fr/library/3eaydw6e(v=vs.110).aspx
Avec un SqlCommand , on utilise un SqlCommandParameter
don't on definit le type de données en DateTime ( la valeur peut être récupérée d'un DateTimePicker par la valeur de la propriété Value et cela évite beaucoup de possibles problèmes de conversion chaine de caractères en DateTime.
Il semblerait que le type Date de VB soit compatible avec le type DateTime de l'espace de nom System.DateTime. Mais je préfère toujours m'appuyer sur des types de données defines dans .Net Framework plutôt que les types spécifiques à un langage ( sur les forums , j'ai souvent fourni des extraits de code en VC# , parfois , on me demande la traduction en VB, et celle-ci est énormément facilitée si les types de données sont defines dans le .Net Framework et non spécifiques à un langage , vieille expérience depuis 2007 )
Bonne journée
cs_ShayW
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46 -
Bonjour
j'ai oublié de le retirer
connexion.ConnectionString = "Data Source=.\sqlexpress;Initial Catalog=billet;Integrated Security=True"
connexion.Open()

Dim command As New sqlcommand
Dim dtt As DataTable
Dim ObjetDataSet As New DataSet
command.Connection = Connection
command.CommandText = "SELECT navire_traverse,datedep_traverse, sens_traverse FROM traverse WHERE datedep_traverse = [?] ; "

Try
command.Parameters.Add("?", OleDbType.Date).Value = DateTimePicker2.value

Dim oSqlDataAdapter As New SqlDataAdapter(command)
Dim oDataSet As New DataSet("traverse")
oSqlDataAdapter.Fill(oDataSet, "traverse")
dtt = oDataSet.Tables("traverse")

Catch ex As Exception
MessageBox.Show(ex.Message)
End Try

le demandeur n'a pas encore répondu
PapyNormand
Messages postés
27
Date d'inscription
samedi 7 août 2010
Statut
Membre
Dernière intervention
16 janvier 2014
1 -
Merci de votre réponse.
Pas de problem , j'espère simplement que vous accepterez mes excuses si mon commentaire vous a vexé.
Bonne soirée
cs_ShayW
Messages postés
3251
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
16 octobre 2019
46 -
non pas du tout c.a.d le commentaire ne m'a pas vexé
bonne continuation
Commenter la réponse de cs_ShayW
Messages postés
27
Date d'inscription
samedi 7 août 2010
Statut
Membre
Dernière intervention
16 janvier 2014
1
0
Merci
Bonjour ,
Je n'utilise plus la propriété Text mais Value qui est lue ou retournée avec le type DateTime.
Bonne soirée
Commenter la réponse de PapyNormand
Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
0
Merci
Bonsoir tout le monde
Merci pour tous vos explication les gars, et surtout à toi papynormand problème résolu.
désolé pour la repense un peu tardive
Commenter la réponse de cs_mohellebi