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

Dotnet Discussion :

Récupérer des données sur un serveur distant


Sujet :

Dotnet

  1. #1
    Invité
    Invité(e)
    Par défaut Récupérer des données sur un serveur distant
    j'ai hebergé un base de données MySQL sur un serveur distant et j'arrive à me connecter et récupérer des donnée via un code php.Pr contre lorsque j'essai de me connecter au serveur via mon application C# avec les meme paramètre de connexion j'ai l'erreur suivant

    unable to connect to any of the specified MySQL hosts.

    vu que j'utilise les memes paramètres je pense bien que mon serveur n'interprete pas du C#.Et je volais savoir s'il y a des serveurs ui interpretent du C# et s'il y a des moyens pour resoudre mon problème de connexion

    voici mon code behind:

    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
    void getOnlineData()
            {
                string server = "host2.hostonik.com";
    string port = "2083";
    string database = "fack_test";
    string username = "username";
    string password = "passwrd";
    string mysql_connect = String.Format("SERVER={0};PORT={1};DATABASE={2};UID={3};PWD={4}", server, port, database, username, password);
     
     
                using (MySqlConnection cnx = new MySqlConnection(mysql_connect))
                {
     
     
     
                    try
                    {
                        cnx.Open();
                        string query = "select * from annonce";
     
                        using (MySqlCommand cmd = new MySqlCommand(query, cnx))
                        {
                            MySqlDataReader r = cmd.ExecuteReader();
     
                            dataGridView1.Rows.Clear();
                            while (r.Read())
                            {
     
                                dataGridView1.Rows.Add(r.GetInt32(0), r.GetString(1), r.GetString(3), r.GetString(4), r.GetDouble(5), r.GetDouble(6), r.GetString(8), r.GetInt32(7));
                            }
                        }
     
                        cnx.Close();
                    }
                    catch (Exception ex)
                    {
     
                        MessageBox.Show("erreur MySQL :" + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
     
                }
     
            }
    j'ai autorisé le port 2083 depuis ma machine et l'erreur renvoyée par MySQL est:
    Timeout in IO operationmais je ne sais pas ce que cela veut dire donc je viens vous pour soliciter votre expertise.Merci d'avance.

  2. #2
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Timeout sûrement parce que ta requête renvoie trop de résultats et prend donc du temps.
    Peut-être que le driver PHP est plus tolérant...

    Essaye d'augmenter le timeout :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string mysql_connect = String.Format("SERVER={0};PORT={1};DATABASE={2};UID={3};PWD={4};default command timeout=60", server, port, database, username, password);
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bonjour j'ai essayé mais j'ai toujours ça:
    Nom : Capture.PNG
Affichages : 213
Taille : 3,7 KoNom : Capture.PNG
Affichages : 213
Taille : 3,7 Ko

    Je suis vraiment coincé j'ai envisagé toutes solutions possibles mais en vain si vous avez d'autres procédés aidez-moi svp

    vraiment coincé!!!!!

  4. #4
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Au bout de combien de temps se produit l'erreur ?

    Sinon set directement le timeout via l'objet commande via la propriété CommandTimeout : e.g. pour 10 minutes laCommande.CommandTimeout = 600
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    l'erreur survient au bout de 20 secondes a peine.

  6. #6
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Et si tu essayes de sélectionner 1 seul élément de la table ?

    Sinon montre le code settant le timeout.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  7. #7
    Invité
    Invité(e)
    Par défaut
    voici mon code
    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
     
     
     void getOnlineData() 
            {
                string server = "host2.hostonik.com";
                string port = "2083";
                string database = "my_db_name";
                string username = "my_username";
                string password = "my_passwrd";
                string mysql_connect = String.Format("SERVER={0};PORT={1};DATABASE={2};UID={3};PWD={4};default command timeout=60", server, port, database, username, password);
     
     
                using (MySqlConnection cnx = new MySqlConnection(mysql_connect))
                {
     
     
     
                    try
                    {
                        cnx.Open();
                        string query = "select nom from users";
     
                        using (MySqlCommand cmd = new MySqlCommand(query, cnx))
                        {
                            MySqlDataReader r = cmd.ExecuteReader();
     
                            dataGridView1.Rows.Clear();
                            while (r.Read())
                            {
     
                                dataGridView1.Rows.Add(r.GetString(0));
                            }
                        }
     
                        cnx.Close();
                    }
                    catch (Exception ex)
                    {
     
                        MessageBox.Show("erreur MySQL :" + ex.Message, "", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
     
                }
     
            }

  8. #8
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Tu es sûr de ne pas avoir de soucis d'identifiants ou autre, tu arrives bien à te connecter avec les mêmes depuis PHP ?

    Parce que si même une petite requête ne passe pas...
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  9. #9
    Invité
    Invité(e)
    Par défaut
    Avec php c'est simple par ce que les fichiers sont aussi hébergés sur le même serveur.
    Donc il suffit de faire ce code et j'arrive à me connecter et récupérer mes données

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    <?php
     mysql_connect ("localhost","my_username","my_passwrd");
     
    mysql_select_db("my_db");
     
    ?>

  10. #10
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Ah c'est déjà une piste très prometteuse.

    Est-ce que tu arrives à te connecter avec un client MySQL (celui en ligne de commande ou MySQL Workbench) ?

    Peut-être le firewall du serveur qui rejette la connexion surtout que le port est exotique donc il faudrait l'ouvrir à l'extérieur je pense...
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  11. #11
    Invité
    Invité(e)
    Par défaut
    le problème c'est que j'ai pas une grande avec MySQL donc je vais devoir te demander comment se connecter en ligne de commande?

  12. #12
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Essaye d'abord avec MySQL Workbench dans ce cas.
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  13. #13
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    j'ai essayé la connexion avec MySQL Workbench toujours echec:

    Nom : mysq.PNG
Affichages : 176
Taille : 12,0 Ko

    et lorsque je mets le port par defaut on me met Accès refusé

  14. #14
    Membre expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Points : 3 958
    Points
    3 958
    Par défaut
    Ton code PHP doit se connecter sur le port par défaut également.

    Donc sans doute un souci de conf MySQL.
    Vérifie que les accès depuis l'extérieur sont bien autorisés mais par défaut ça ne devrait pas être le cas car seul le code hébergé y accède en général.

    Je pense que le plus simple est de contacter ton hébergeur pour la bonne procédure à suivre.
    Exemple chez Gandi : http://wiki.gandi.net/fr/hosting/usi...u/remote-mysql
    Formateur expert .Net/C#/WPF/EF Certifié MCP disponible sur Paris, province et pays limitrophes (enseignement en français uniquement).
    Mon blog : pragmateek.com

  15. #15
    Invité
    Invité(e)
    Par défaut
    tu dois avoir raison l'accès extérieur n'est peut-être pas autorisé je vais les connecter.

Discussions similaires

  1. Réponses: 5
    Dernier message: 09/01/2012, 09h19
  2. Réponses: 3
    Dernier message: 21/11/2006, 17h59
  3. récupérer des données sur une clef USB
    Par mullger dans le forum Périphériques
    Réponses: 6
    Dernier message: 25/09/2006, 18h38
  4. récupérer un fichier sur un serveur distant
    Par Phiss dans le forum ASP
    Réponses: 7
    Dernier message: 17/05/2006, 18h02
  5. Récupérer des données sur une page HTML
    Par rupeni dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 18/11/2005, 17h22

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