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 :

Effectuer une recherche dans base de donnée


Sujet :

C#

  1. #21
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Home.wConnexion.Close();
    Ben met ça ailleurs !
    C'est tellement logique ! Le While va refaire un reader.Read() qui a sa connexion fermée ! Donc erreur ...

  2. #22
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    fermer la connexion après le premier tour de boucle, tu m'étonnes que ça beugle !

    Normalement, avec les using, tu n'as pas à faire le close toi-même. Il doit le faire tout seul (si quelqu'un peut confirmer ?)

    Edit : j'auris pu chercher au mieux de demander la confirmation
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  3. #23
    Membre éprouvé
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Points : 1 187
    Points
    1 187
    Par défaut
    Je confirme

  4. #24
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Points : 0
    Points
    0
    Par défaut
    Quand je le mets autre par j'obtiens tjrs le meme message d'erreur
    Si while ferme pourquoi je n'arrive pas a afficher une deuxieme fois ?

  5. #25
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut

    Citation Envoyé par moonshine972 Voir le message
    Quand je le mets autre par j'obtiens tjrs le meme message d'erreur
    Si while ferme pourquoi je n'arrive pas a afficher une deuxieme fois ?
    je pas compris ^_^!

    retire le close de ta connexion...
    ça devrait marcher... si ça ne marche pas, c'est qu'il reste une coquille...
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

  6. #26
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Points : 0
    Points
    0
    Par défaut
    VS me dit que la connexion est toujours ouverte alors il faut la fermer pour que je puisse de nouveau afficher des infos?

  7. #27
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Points : 0
    Points
    0
    Par défaut
    Citation Envoyé par kheironn Voir le message


    je pas compris ^_^!

    retire le close de ta connexion...
    ça devrait marcher... si ça ne marche pas, c'est qu'il reste une coquille...
    sans le close j'obtiens ceci:

    Connection must be valid and open.

  8. #28
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    comboBox2, textBox2...textBox12 mais comment peut-on laisser le nommage automatique de l'IDE, c'est infame ! Mais passons !

    Pour information, la DLL LibMySQL.dll fournit la fonction mysql_real_escape_string qui permet de se protéger contre problème d'injection de SQL

    Il est assez drôle de voir que les développeurs du site mysql.com n'ont pas respecté leur propre conseil !

    Pour les requêtes paramètres, il y a un débat sur la forme paramètrée du LIKE car selon la DB, le support est différent (voire incompatible)

    Certains proposent :
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT table1.* FROM table1 WHERE field1 like %:param1%
    :param1 = "valeur a chercher"

    d'autres (dont je fais parti)
    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT table1.* FROM table1 WHERE field1 like :param1
    :param1 = "%valeur a chercher%"

    la seule chose que je peux dire c'est que seule la seconde forme passe avec PHP\ZendDB\MySQL qui utilise des requêtes paramètres non nommées "like ?param1" -> "like ?"
    PDO fournit le supporte des paramètres nommés "like :param1"

    La 1ère forme fonctionne sous FireBird\InterBase !

    Pour le like sans %, effectivement, une petite case à cocher sur ton écran de recherche pourrait indiquer un mode "strict" avec = ou un mode "partiel" avec like %

    Par expérience, sur des tables avec 300 000 personnes, il est vivement déconseillé de faire un like sur moins de 3 caractères, les temps de réponse peuvent être très long (à cause du volume d'enregistrement renvoyé, un LIMIT peut-être utile)
    A l'époque en MySQL 4.1 (de EasyPHP 1.8), tout le temps de la recherche, le SELECT LIKE provoquait un LOCK de la Table, donc tout accès concurrent UPDATE\INSERT sur cette table devait attendre que la requête soit terminée (et complètement expédiée), ce qui peut être pénible pour l'utilisateur !
    MySQL 5.x le supporte mieux, surtout avec les transactions, mais il faut tout de même faire attention


    Pour les noms asiatiques comme Li ou même Y (oui c'est un nom !), on voit la necessite d'avoir un mode Strict = !

    Pour les chaines contenant ' comme "N'Guyen", le ' peut provoquer des surprises effectivement, avec MySQL, je préfère " comme délimiteur de chaine, il est moins problématique que ' même si les deux sont supportés (ce n'est pas le cas pour la plupart des autres SGBD)
    l'utilisation de \" dans le code C# est un peu pénible, mais évite de se poser la Question du ' dans le SQL
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  9. #29
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    Citation Envoyé par moonshine972 Voir le message
    sans le close j'obtiens ceci:

    Connection must be valid and open.
    A quel moment dans ton code tu ouvres ta connexion ?

  10. #30
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Points : 0
    Points
    0
    Par défaut
    a l'identification user et mot de passe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    wConnexion = new MySqlConnection(connStr);
                        wConnexion.Open();

  11. #31
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Ce qu'il y d'incompréhensible dans ton code, c'est les Edit !
    Alimenté des Items d'un Combo dans une boucle, c'est logique !
    Par contre, tes edit vont contenir forcément la dernière ligne !

    Pour connexion.close en plein milieu d'une lecture, sans commentaire !

    pour Using je confirme, par contre, cela ne dispense par de faire le Open

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    using (Home.wConnexion)
    {
      Home.wConnexion.Open();
      ...
    Surtout que l'on peut penser que moonshine972, tu utilises systématiquement using ? donc ce 1er Open est vite annulé par le 1er using !
    ça passe son temps à fermer et ouvrir la connexion !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  12. #32
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    Tu m'étonnes que ça marche pas, tu l'ouvres qu'une seule fois mais dès que tu fais tes using, à la fin ça ferme ta connexion mais tu la réouvres pas

    Ce serait plus approprié de mettre cette ligne

    Juste en dessous de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    using (Home.wConnexion)
    {
    // à mettre ici
    Tu as un exemple ici, deuxième bout de code. Mais honnêtement, vaut mieux faire comme dans le premier bout de code. C'est bien plus simple à gérer.

  13. #33
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Points : 0
    Points
    0
    Par défaut
    j'obtiens ce m'essage d'erreur qui me dit que la connexion est deja ouverte

    The connection is already open.
    j'ai fait ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    private void button3_Click(object sender, RoutedEventArgs e)
            {
                    using (Home.wConnexion)
                    {
                        Home.wConnexion.Open();
     
                        // Instancier l’objet Command
                        using (MySqlCommand wCommand = Home.wConnexion.CreateCommand())

  14. #34
    Rédacteur

    Avatar de Jean-Michel Ormes
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    1 838
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 838
    Points : 4 574
    Points
    4 574
    Par défaut
    Enlève l'ouverture de connexion à l'identification.

  15. #35
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    using (Home.wConnexion)
    {
      if (Home.wConnexion.State != ConnectionState.Open)
        Home.wConnexion.Open();
      ...

    moonshine972, tu pourrais chercher un minimum !
    Ne me sort pas l'excuse : "je suis débutant", je suis programmeur C++, je ne fais pas de C# (je ne sais même à quoi ressemble Visual studio), ça se trouve sur en 10s !

    Suffit de lire ADO.NET : les objets Connection, Command et Datareader en C#, l'auteur a eu l'excellente idée de montrer "oConnection.State" dans son tutoriel, suffit ensuite de chercher dans la msdn ConnexionState
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  16. #36
    Nouveau Candidat au Club
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2011
    Messages : 48
    Points : 0
    Points
    0
    Par défaut
    j'ai trouvé!

    j'ai viré using (home.wconnexion)

    et tout fonctionne.

    je suis débutant en plus :-)

    Merci beaucoup pour votre aide

  17. #37
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par kheironn Voir le message
    Normalement, avec les using, tu n'as pas à faire le close toi-même. Il doit le faire tout seul
    ça fait 1 heure que kheironn t'avait mis sur la piste !
    Tu poses des questions, lit nos réponses !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  18. #38
    Membre éprouvé Avatar de kheironn
    Homme Profil pro
    Chef de projets technique C# / MVC / .Net
    Inscrit en
    Février 2007
    Messages
    822
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Chef de projets technique C# / MVC / .Net
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2007
    Messages : 822
    Points : 1 108
    Points
    1 108
    Par défaut
    Citation Envoyé par Jean-Michel Ormes Voir le message
    Tu m'étonnes que ça marche pas, tu l'ouvres qu'une seule fois mais dès que tu fais tes using, à la fin ça ferme ta connexion mais tu la réouvres pas

    Ce serait plus approprié de mettre cette ligne

    Juste en dessous de :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    using (Home.wConnexion)
    {
    // à mettre ici
    Tu as un exemple ici, deuxième bout de code. Mais honnêtement, vaut mieux faire comme dans le premier bout de code. C'est bien plus simple à gérer.

    quand je dis que j'aime pas les using pour l'ADO...

    avec mes open, close, etc je sais au moins ce qu'il se passe et quand ça se passe... maintenant, il paraît qu'il faut être flémmard en dev...
    Mais flémmard ne signifie pas stupide...
    En informatique, le problème se situe toujours entre le clavier et l'écran !
    Il y a deux chemins entre le clavier et l'écran : Par l'UC et par l'utilisateur.

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. recherche dans base de donnée mysql
    Par alex01pernot dans le forum Bases de données
    Réponses: 13
    Dernier message: 03/05/2020, 15h50
  2. [VBA-Excel] Effectuer une recherche dans une liste view
    Par Miles Raymond dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 23/11/2006, 17h21
  3. Recherche dans base de données et casse
    Par laurentdusseau dans le forum Requêtes
    Réponses: 2
    Dernier message: 08/10/2006, 10h05
  4. Comment effectuer une recherche dans une listBox?
    Par Mickey.jet dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 19/05/2006, 16h15
  5. [VB.NET] Comment créer une table dans base de données ?
    Par ptitesouris dans le forum VB.NET
    Réponses: 3
    Dernier message: 03/05/2006, 08h46

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