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

VC++ .NET Discussion :

Récuperer les donnée du BD access dans un textbox?


Sujet :

VC++ .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 43
    Par défaut Récuperer les donnée du BD access dans un textbox?
    Bonjour lors de mon cours de VB.net on a appris a connecter notre form a une bd access en suivant cette exemple:
    http://www.webprofesseur.com/vbnet/15440n9.htm

    On a appris par après a faire des ajout/modif/suppression de chaque enregistrement.

    Ça c'était pour la petite histoire, maintenant rentrons dans le vif du sujet, j'ai voulu refaire la même chose mais pour un programme en C++ toujours via l'éditeur de form, en utilisant la même méthode que sur le lien plus haut.

    J'ai réussi a ajouter, modifier, supprimer les données dans la DB access, mais le
    problème c'est que je ne sais pas comment faire pour récupérer une donnée après l'avoir rechercher et la mettre dans un textbox par exemple.

    Je précise que la recherche s'effectue bien car j'arrive a supprimé l'enregistrement.
    Voici comme je fais pour rechercher l'enregistrement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    void Form1::button3_Click(System::Object *  sender, System::EventArgs *  e)
    {
    	dataSet11->Clear(); //remettre a blanc la base pour que l'affichage se fasse correctement
    	oleDbDataAdapter1->Fill(dataSet11, "Table1");
    	dt = dataSet11->Table1;
     
    	//On crée une isntance de la table dataview avec une defaultview et "sort" est une methode
    	dt->DefaultView->Sort = "chaine ASC";
    	ind = dt->DefaultView->Find(textBox2->Text);
    	if (ind == -1)
    	{
    		label1->Text = "Utilisateur non repertorié";
    		textBox2->Text = S"";
    		textBox2->Focus();
    	}
        else
    		//Récupérer le résultat de la méthode find dans l'index
    		label1->Text = "Utilisateur repertorié";
     
    }
    La pas de problème mais j'aimerai bien replacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    label1->Text = "Utilisateur répertorié";
    par le nom de la chaine dans la BD access et c'est la que je bloque!! pas moyen de reprendre la donnée(fin je n'ai pas trouver comment faire en C++ car en VB.net j'utiliserai cette methode:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Me.label1.Text = dt.DefaultView(ind)("chaine")
    J'ai donc essayé de la même manière, avec un strcpy, en prenant le contenu dans une nouvelle ligne et en essayant via cette nouvelle ligne, pas moyen...

    J'espère que j'aurais été complet si il faut d'autre renseignement je les donnerais


    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    c'est le meme principe en C++/CLI, quelque chose du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    label1->Text = dt->DefaultView[ind]["chaine"];
    ou alors peut-etre une propriété rows ...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 43
    Par défaut
    Je reessayerai encore tantot mais il me semble que j'ai deja essayé cette methode, le probleme c'est que j'ai souvent 2 erreur recurente soit on me dit qu'il ne peut pas convertir un type systemrow en gstring, soit il me dis qu'il n'accepte pas les parametre dans la fonction.

    Je serais plus precis une fois chez moi. Mais merci de la réponse je testerai encore.

  4. #4
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    si tu as des erreurs, n'hésite pas à copier le contenu

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    43
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2005
    Messages : 43
    Par défaut
    Me voila de retour chez moi je me suis empressé de tester même si je me souvenais avoir déjà essayé plusieurs commandes de ce type... j'ai donc refait des tests et les mêmes erreurs revienne selon le cas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		label1->Text = dt->Rows->Item[ind]["chaine"];
    error C2107: index non conforme, indirection interdite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		label1->Text = dt->DefaultView[ind]["chaine"];
    error C2845: '[' : impossible d'effectuer une opération arithmétique de pointeur sur le pointeur __gc 'System::Data::DataView __gc *'
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		label1->Text = dt->DefaultView->Item[ind]["chaine"];
    error C2107: index non conforme, indirection interdite
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    		label1->Text = dt->Rows[ind]["chaine"];
    error C2845: '[' : impossible d'effectuer une opération arithmétique de pointeur sur le pointeur __gc 'System::Data::DataView __gc *'
    Voila un petit exemple de mes essais j'en ai essayé bien d'autre et généralement c'est celle la qui reviennent... avec aussi comme je l'avais dis parfois une erreur qui me dis que je n'ai pas le droit d'inserer une valeur datarow dans du string.

    Si vous avez des idées je suis preneur

    Merci d'avance

  6. #6
    Rédacteur
    Avatar de nico-pyright(c)
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    6 414
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 6 414
    Par défaut
    il semblerait que tu utilises vs 2003
    alors, le pb vient du cast en string

    pour vs2003
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String *s = (String *)dt->DefaultView[ind]["chaine"];
    pour vs2005
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String ^s = (String ^)dt->DefaultView[ind]["chaine"];

Discussions similaires

  1. récuperer les données de ma base dans une listeView
    Par bounasri dans le forum Android
    Réponses: 3
    Dernier message: 06/05/2011, 18h35
  2. Récuperer les données dans une table access
    Par poutong dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 21/09/2009, 12h00
  3. Boucles pour récuperer les données d'un tableau dans un autre.
    Par arnold95 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 28/09/2007, 21h39
  4. Réponses: 2
    Dernier message: 10/09/2007, 16h40
  5. Réponses: 4
    Dernier message: 22/05/2007, 14h42

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