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

C# Discussion :

recuperer le contenu d'une DataTable..


Sujet :

C#

  1. #1
    Membre du Club Avatar de sarah_s
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 61
    Points
    61
    Par défaut recuperer le contenu d'une DataTable..
    bonjour!!
    mon probléme c'est une dataTable elle me rend folle..
    elle contient le résultat d'une requéte ,avant je testait seulement si elle est vide ou non,maintenant j'ai besoin du resultat de cette requete pour d'autres operations,mais elle me semble assez capricieuse comme table

    voici le code,quelqu'n peut m'éclairer sur ce que je peux faire

    DataTable tb= new DataTable();
    //executer la requete
    string Requete = "select USER_ID from USERS where LOGIN='" + log.ToLower() +"' and Password ='" + pwd + "'" ;

    tb = this.GetTable(Requete);
    if (tb.Rows.Count > 0)
    found = true;

    merci à l'avance !

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Tu devrais mettre ton code dans une balise [CODE ]...[/CODE ] pour la lisibilité.
    Sinon, je n'ai pas compris ce que tu cherches à faire...
    Peux-tu nous donner plus de précisions ? A quoi sert cette méthode GetTable() ?
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre du Club Avatar de sarah_s
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 61
    Points
    61
    Par défaut
    merci pour ta réponse..
    voici le code pour la fonction getTable() qui permet de charger une dataTable avec le resultat d'une requete:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public DataTable GetTable(string Requete)
            {
                DataTable table = new DataTable();                                          
                    OleDbDataAdapter AdapTContact = new OleDbDataAdapter(Requete, Connection);                
                    AdapTContact.Fill(table);               
     
                return table;
            }
    peut etre,une dataTable n'est pas la bonne solution,mais ce que je veux c'est recupérer le USER_ID dans une variable aprés execution la requéte que j'ai mentionné dans mon premier poste,avez vous une autre solution à me proposer?,

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Oui en effet un DataTable me semble être un peu excessif pour une seule valeur.
    Tu devrais regarder du côté de la méthode ExecuteReader de l'interface IDbCommand. Elle renvoie un IDataReader qui te permet de lire les données séquentiellement, ce qui dans ton cas sera moins lourd et plus rapide.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    String monId;
    IDataReader reader = maCommande.ExecuteReader();
    // Vérifie qu'au moins une ligne a été renvoyée.
    if (reader.Read())
    {
        // Récupère le premier champ de la ligne courante, en testant s'il n'est pas nul avant.
        monId = reader.IsDbNull(0) ? String.Empty : reader.GetString(0);
    }
    J'ai considéré que tu avais une chaine comme USER_ID, si ce n'est pas le cas, tu n'auras qu'à changer le type de la variable et appeler la bonne méthode GetXXX du IDataReader.

    [EDIT] Commentaires et typo.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre du Club Avatar de sarah_s
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 61
    Points
    61
    Par défaut
    resalut:
    la line suivante me génére cette erreur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
      id = reader.IsDBNull(0) ? String.Empty : reader.GetString(0);
    Informations supplémentaires*: Le cast spécifié n'est pas valide.

  6. #6
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Points : 6 334
    Points
    6 334
    Par défaut
    Si tu reprend ce que j'ai écrit avant, j'avais précisé que si le champ que tu récupères n'est pas de type string (varchar, nvarchar, etc), tu ne dois pas utiliser GetString() mais la méthode GetXXX qui correspond au type du champ retourné.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  7. #7
    Membre du Club Avatar de sarah_s
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    90
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 90
    Points : 61
    Points
    61
    Par défaut
    eh oui ta raison c'est un probléme de type du champ,j'avais complétement oublié que c'est numérique..maintenant c'est bon ça marche.
    ça fait du bien d'avoir un probléme de moins dés le debut de la journée
    enfin je peux avancer ,merciii

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

Discussions similaires

  1. [JSP][WEB] recuperer le contenu d'une page web
    Par ypikahe dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 14/03/2008, 10h10
  2. recuperer le contenu d'une page web
    Par firejocker dans le forum MFC
    Réponses: 26
    Dernier message: 11/10/2005, 17h27
  3. [C#] Recuperer le contenu d'une ligne dans datagrid
    Par thierry2001 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 22/09/2005, 14h56
  4. Réponses: 10
    Dernier message: 24/05/2005, 16h00
  5. [VB6] [Système] Récupérer le contenu d'une fenêtre DOS
    Par Nounours666 dans le forum VB 6 et antérieur
    Réponses: 16
    Dernier message: 18/11/2004, 16h38

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