IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

remplir un datagridview


Sujet :

VB.NET

  1. #1
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Par défaut remplir un datagridview
    Bonjour
    J'ai développé un projet vb.net en connection avec base de donnée SQL server 2005.
    j'ai une table nommé règlement avec les champs suivants:
    code,numpiece,date,montant,mode,datecheance,numcheque,nombanque et ncin.
    Dans mon projet j'ai un form qui contient un tabcontrol, ce dernier contient 12 onglets (les 12 mois de l'année) chaque onglet contient datagridview, je veux afficher dans chaque datagridview les dates de chaque mois, j'ai essayé pour le faire, j'ai mis un bouton afin d'afficher les données pour février par exemple mais ça ne marche pas

    voici le code du bouton afficher:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Private Sub btaffiche_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btaffiche.Click
            Dim strConnexion As String = "Data Source=PC-DE-USER\SQLEXPRESS;Initial Catalog=BDecheance;Integrated Security=True"
            Dim oConnection As New SqlConnection(strConnexion)
            Dim strCommand As New SqlCommand
            oConnection.Open()
            Dim strRequete As String = "SELECT * FROM reglement WHERE datecheance BETWEEN CDate(""01/02/2011"")AND CDate (""28/02/2011"") "
            strCommand.Connection = oConnection
            strCommand.CommandText = strRequete
            strCommand.ExecuteNonQuery()
            DataGridView1.DataSource = strCommand
            strCommand.Connection.Close()
        End Sub
    et il affiche l'erreur suivant :
    'CDate' is not a recognized built-in function name.
    Quelqu'un pourrait m'aider ??

    Merci.

  2. #2
    Membre habitué
    Inscrit en
    Juin 2009
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 11
    Par défaut
    Salut!
    justement regarde autour de la "fonction" CDate. Je ne pense pas que ce soit une fonction prédéfinie de SQLServer. En effet que voulais-tu que CDate te fasse? conversion? autre chose?

  3. #3
    Membre averti
    Étudiant
    Inscrit en
    Février 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 48
    Par défaut
    Cdate est une fonction vb permettant la conversion en date, tu devrais passer par des variables intermédiaires pour convertir les chaines en date ou faire comme ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM reglement WHERE datecheance BETWEEN '" & CDate("01/02/2011")  & "' AND '" & CDate ("28/02/2011") "'"

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    sur sql server c'est convert(datetime,'xx/xx/xxxx')

    que ca soit par le cdate de vb ou convert d'sql ca n'est toutefois pas conseillé
    en effet le jour ou tu vas tomber sur un paramétrage régional de windows différent ca va planter
    une date étant une date et un string pouvant être interpreté de différente manière (jj/mm ou m/jj par exemple) il convient de la faire transiter en date !
    pour ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    cmd.commandtext = "(...) where date between @date1 and @date2 (...)"
    cmd.parameters.Add("@date1",datetime).value = variable_date1
    cmd.parameters.Add("@date2",datetime).value = variable_date2
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Par défaut
    comme vous m'avez dit Mephista j'ai mis :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT * FROM reglement WHERE datecheance BETWEEN '" & CDate("01/02/2011 00:00:00") & "' AND '" & CDate("28/02/2011 00:00:00") & "'"
    mais il affiche l'erreur suivantes :
    The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value.
    est ce vous pouvez m'aider ??

  6. #6
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    si tu ne comprends pas ce que j'ai écris moi je ne peux rien faire de plus ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  7. #7
    Membre averti
    Inscrit en
    Octobre 2009
    Messages
    36
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 36
    Par défaut
    oui Pol63 j'ai pas compris exactement est ce que tu peut m'expliquer une autre fois ce que vous avez écrit à l'aide de ce que j'ai écris la première fois svp
    et merci

  8. #8
    Membre averti
    Étudiant
    Inscrit en
    Février 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Âge : 35

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2011
    Messages : 48
    Par défaut
    Le problème vient du fait que la fonction cdate convertit ta chaine en date, seulement tu essaies de convertir en date une valeur comprenant aussi les heures, les minutes et les secondes. Néeanmoins je pense que la solution de Pol63 est à privilegier pour les raisons qu'il a explique.

  9. #9
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    ca me parait assez clair
    en sql on peut utiliser des variables qui commence par @ et suivi d'un nom au choix
    on doit ensuite définir la valeur des variables via dans ton cas StrCommand.Parameters
    StrCommand.Parameters.Add pour ajouter une variable
    StrCommand.Parameters("nom param").Value pour définir la valeur
    ou regroupé en une ligne dans mon exemple précédent
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. Remplir un DataGridView avec le contenu d'un fichier excel
    Par belmansour tidjani dans le forum Windows Forms
    Réponses: 7
    Dernier message: 05/06/2018, 14h08
  2. [c#] Remplir un DataGridView avec plusieurs DataTable
    Par macfred dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/02/2010, 11h02
  3. remplir de datagridview
    Par omlov88 dans le forum C#
    Réponses: 2
    Dernier message: 04/12/2007, 16h45
  4. remplir un DataGridView
    Par mon_pierre dans le forum Windows Forms
    Réponses: 6
    Dernier message: 29/11/2007, 10h32
  5. [WinForms][2.0] Remplir un DataGridView
    Par SoGood dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 04/12/2006, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo