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

Signaler
Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
-
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()

4 réponses

Messages postés
14673
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
28 juin 2020
143
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(...)
Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
2
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 .
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
49
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
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
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
49
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
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
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
49
non pas du tout c.a.d le commentaire ne m'a pas vexé
bonne continuation
Messages postés
27
Date d'inscription
samedi 7 août 2010
Statut
Membre
Dernière intervention
16 janvier 2014
1
Bonjour ,
Je n'utilise plus la propriété Text mais Value qui est lue ou retournée avec le type DateTime.
Bonne soirée
Messages postés
104
Date d'inscription
mercredi 31 octobre 2007
Statut
Membre
Dernière intervention
1 août 2019
2
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