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

Accès aux données Discussion :

C++ dotNet et les Bases des Données


Sujet :

Accès aux données

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 20
    Par défaut C++ dotNet et les Bases des Données
    Salut à tous;
    j'ai réalisé des applications en vb6 avec BD en access et en sql. Il y'a quelque temps j'ai voulu migrer vers la plateforme DotNet et j'ai commencé à réecrire une application en C++/CLI selon l'architecture Client/Serveur (BD côté Serveur).
    Je suis parvenu à faire la connexion aux BD et à manipuler les tables mais la seule solution que j'ai trouvé pour accéder aux champs d'une table est d'utiliser un array et d'accéder aux champs par leurs rang comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Chainesql = "SELECT DISTINCT [Categorie_Libelle] FROM [Table_Nomenclature_Taille]";
    if
    (xAdoAccess.SVR_Db_Article_Read(Nom_Utilisateur,Nom_Poste,Chainesql))
    {
    array<Object ^> ^row = gcnew array<Object ^>(xAdoAccess.MyDataReader->FieldCount);
    for (int i=0;i<row->Length;i++)
    {
      xAdoAccess.MyDataReader->Read();
      xAdoAccess.MyDataReader->GetValues(row);
      FrmCategorie_Libelle->Items->Add(row[0]);
    }
    }
    Alors qu'en VB6, il suffit, pour accéder à un champs, de faire Nom_Table![Nom_Champs] qui me semble plus pratique et plus lisible.
    En tout cas, sauf s'il y'a quelques choses qui m'échappe dans les techniques de C++/CLI, est ce qu'on peut dire que ce langage est non orienté vers BD surtout que même dans ce site respectueux et qui m'a vraiment poussé et aidé dans ma vie professionnelle (mille merci à tous les membres) j'ai pas trouvé beaucoup d'explication (soit tutoriels ou Faq) concernant C++/CLI et les BD.
    Merci.

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Chebil2006 Voir le message
    Alors qu'en VB6, il suffit, pour accéder à un champs, de faire Nom_Table![Nom_Champs] qui me semble plus pratique et plus lisible.
    En tout cas, sauf s'il y'a quelques choses qui m'échappe dans les techniques de C++/CLI, est ce qu'on peut dire que ce langage est non orienté vers BD surtout que même dans ce site respectueux et qui m'a vraiment poussé et aidé dans ma vie professionnelle (mille merci à tous les membres) j'ai pas trouvé beaucoup d'explication (soit tutoriels ou Faq) concernant C++/CLI et les BD.
    Le principe est le même dans tous les langages .NET... Il faut passer par la propriété Item (en C# cette propriété est accessible via l'indexeur du type, je sais pas trop comment ça se passe en C++), ou alors utiliser les fonctions GetString, GetInt32, GetValue, etc
    Tu peux essayer quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object^ toto = reader->Item["toto"]
    Ou comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    object^ toto = reader["toto"]

  3. #3
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 20
    Par défaut Tomlev
    Merci Tomlev pour votre réponse. en tout cas j'ai essayé la manière dont vous m'avez décrit et ça pas marché. Toutefois en essayant VB.Net, on peut y faire en mettant Datarow("Nom_Champs")
    Je cherche bien des conseils afin de me plonger dans Vb.Net, surtout que je travaille beaucoup avec les BD et que j'ai des experiences avec VB6.
    La question se pose tjs, est ce qu'il y'a quelques choses qui m'échappent ou que le C++/CLI (je sais pas si pour MFC c'est différent) a sacrifié la lisibilité pour la sécurité.
    Merci à tous.

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Chebil2006 Voir le message
    Merci Tomlev pour votre réponse. en tout cas j'ai essayé la manière dont vous m'avez décrit et ça pas marché.
    Tu as dû faire une erreur quelque part... je viens d'essayer pour en avoir le coeur net, et le code suivant fonctionne sans problème :
    Code C++ : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	DbDataReader^ reader = cmd->ExecuteReader();
    	while(reader->Read())
    	{
    		Console::WriteLine("{0}. {1}", reader["ID"], reader["LIB"]);
    	}

  5. #5
    Membre averti
    Homme Profil pro
    Enseignant
    Inscrit en
    Septembre 2006
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Enseignant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2006
    Messages : 20
    Par défaut
    Je veux l'essayé après retour de travail, ça sera gentil de votre part de me dire quel type d'application C++ vous avez utilisé (CLI, MFC, Application WinForms....).
    Merci infinnement.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Chebil2006 Voir le message
    Je veux l'essayé après retour de travail, ça sera gentil de votre part de me dire quel type d'application C++ vous avez utilisé (CLI, MFC, Application WinForms....).
    Merci infinnement.
    Une appli console (mais ça n'a aucune importance...)

    Par contre, MFC ça n'a rien à voir, ce n'est pas du C++/CLI mais du C++ standard (enfin, pour autant qu'on puisse considérer le C++ Microsoft comme "standard" , mais je n'entrerai pas dans ce débat...)

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 15/05/2014, 00h12
  2. Réponses: 3
    Dernier message: 22/09/2007, 13h56
  3. Apprendre les bases des "bases de données"
    Par dalhia dans le forum Débuter
    Réponses: 6
    Dernier message: 27/08/2006, 02h42
  4. Des images dans les bases de données !
    Par micky57 dans le forum C++Builder
    Réponses: 3
    Dernier message: 07/03/2006, 16h09

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