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

ASP.NET Discussion :

[VB.NET]une donnée simple dans une variable


Sujet :

ASP.NET

  1. #1
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut [VB.NET]une donnée simple dans une variable
    Désolé si la question vous parait con, mais çà fait trois plombes que je potasse tous les tuto et les trois bouquins que j'ai mais je trouve pas. donc je viens chercher de l'aide.

    Donc je voudrais, le plus simplement du monde, aller chercher des données dans ma base et les charger dans une variable. Je ne comprends pas comment on peut extraire çà. J'ai cherché avec un DataSet, avec un DataAdapter, avec un Repeater. Mais je n'arrive pas à prendre la donnée brute.

    Est ce que vous pourriez me donner une solution simple, sans fioriture. Le code pourrait ressembler à çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Dim mavariable as 'le type qu'il faut'
    Dim conex as 'Connection à la base'
    'Le bout de code qu'il me manque'
     
    mavariable = 'le truc qui fait que je récupère la donnée de la base'
    Aprés je sais comment utiliser ces variables (calcul, affichage, patati et patata)

    Merci pour votre aide.

  2. #2
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    slt
    Je te donnerais pas le code VB.Net car 1) je connais pas trop le VB.Net et 2) c'est pas le but.
    En gros, ce que tu doit faire :

    1) Instancier un SqlConnection pour ta connection à la BDD
    2) Instancier un SqlDataAdapter (avec ta requete SQL) associé à ton SqlConnection
    3) Instancier un nouveau DataSet
    4) Alimenter ton DataSet avec le SqlDataAdapter (monAdapter.Fill(monDataSet))
    5) Utiliser ton DataSet ainsi alimenté avec tes données.

    Remarque 1 : Si c'est pas une base SQLServer, alors tu putilisera les OdbcCOnnection et OdbcDataAdapter
    Remarque 2 : Ne pas oublier d'importer les library nécessaire (System.Data.SqlClient ou System.Data.Odbc)

  3. #3
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Merci pour ton aide.
    Certes le but c'est pas çà. Comme disait mon grand père : il ne faut pas donner une truite à l'homme qui a faim, mais lui apprendre à la pêcher.

    Ton explication n'est pas beaucoup plus claire que les bouquins ou les tutos.
    Elle a au moins l'avantage de me réduire le champs au seul Dataset, maintenant je sais où il faut que j'aille.
    Toutefois, j'ai réussi à avancer sur les 4 premiers pas. C'est le dernier pas qui me pose le plus de problème.

    Chaque truc que j'essaie me pose un soucis du genre : "c'est pas le bon type". "çà ne peut pas être converti en string ou en Integer" enfin que des truc comme çà.

    Donc, est ce que tu aurais juste la propriété ou la méthode de l'objet dataset qu'il faut que j'utilise ?

    Merci

  4. #4
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    fait voir ton code

    EDIT : Les type qu'il y a dans ton DataSet sont ceux qui proviennent de ta BDD. Exemple : un int devient un int, un nvarchar devient un string, ...)

  5. #5
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Ben en fait j'ai creusé et j'ai trouvé un truc assez sympa. J'en ai fait un fonction pour me rammener une valeur unique.
    Maintenant il faut être vigilant sur la requête, il faut être sûr qu'elle va retourner qu'un seul enregistrement.
    Mais j'ai pas bien compris l'histoire de la table. Est ce que c'est le nom d'une table de la base ou uste un nom de table dans le DataSet ?

    Voilà, si tu crois qu'on améliorer çà, je suis ouvert. J'espère que çà pourra aider d'autres développeur. Cette function mise dans une clsse d'outils, c'est pas mal.

    En tout cas merci pour ton aide. Je vais mettre le tag "Résolu".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        Public Shared Function RetourneUneValeur(ByVal strRequete As String, ByVal table As String)
            Dim sParamConexion As String = "data source=MAITRE;initial catalog=methprod;user id=sa;pwd="
            Dim scConnexion As New SqlConnection(sParamConexion)
            scConnexion.Open()
            Dim strCommande As New SqlCommand(strRequete, scConnexion)
            Dim dsVoiture As New DataSet()
            Dim daVoiture As New SqlDataAdapter()
            daVoiture.SelectCommand = strCommande
            daVoiture.Fill(dsVoiture, table)
            Return dsVoiture.Tables(0).Rows(0)(0)
            scConnexion.Close()
        End Function

  6. #6
    Membre éprouvé Avatar de guitoux1
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 011
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 011
    Points : 1 256
    Points
    1 256
    Par défaut
    non c nul
    Pour retourner une seule et unique valeur, faut utiliser la méthode ExecuteScalar de l'objet Command (SqlCommand, OdbcCommand, ...)
    Instancer un DataSet et un DataTable uste pour une valeur !! c'est hyper consommateur en ressource pour rien

    Autres remarques :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
        Public Shared Function RetourneUneValeur(ByVal strRequete As String, ByVal table As String)
            Dim sParamConexion As String = "data source=MAITRE;initial catalog=methprod;user id=sa;pwd="
            Dim scConnexion As New SqlConnection(sParamConexion)
            scConnexion.Open()
            Dim strCommande As New SqlCommand(strRequete, scConnexion)
            Dim dsVoiture As New DataSet()
            Dim daVoiture As New SqlDataAdapter()
            daVoiture.SelectCommand = strCommande
            daVoiture.Fill(dsVoiture, table)
            Return dsVoiture.Tables(0).Rows(0)(0)
            scConnexion.Close()
        End Function
    1) Quand tu utilise le SqlDataAdapter, pas besoin d'ouvrir et fermer ta connexion à la BDD, il le fait tout seul.
    2) Quand bien même tu voudrais fermer la connexion, ne le fait pas APRES le Return de ta fonction !! il ne sera jamais appelé.
    3) Ta méthode retourne un type object. Ca ne règle en rien ton PB précédent sur le type de valeur.
    4) Aucun interet de passer en paramètre le string table, il ne sert à rien. En effet, pour répondre à ta question, c'est le nom que tu donne à la table de ton dataset. Rien a voir avec celui de ta BDD. De plus, il n'est pas obligatoire

  7. #7
    Membre extrêmement actif
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Points : 1 434
    Points
    1 434
    Par défaut
    Bon, ben au moins çà a le mérite d'être clair.

    Effectivement ExecuteScalar est bien aussi.

    Encore merci.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [POI] Ajouter une donnée au format heure dans une cellule
    Par mouss4rs dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 26/02/2012, 12h59
  2. [AC-2003] récupérer une donnée à un endroit précis dans une table
    Par justine' dans le forum VBA Access
    Réponses: 3
    Dernier message: 12/04/2011, 17h39
  3. [Toutes versions] Recherche de données dans une feuille pour les copier dans une autre
    Par mattdogg97 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 07/02/2011, 14h22
  4. Réponses: 4
    Dernier message: 05/10/2009, 18h58
  5. Réponses: 1
    Dernier message: 26/09/2007, 17h16

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