2010-09-25 4 views
0

Je me suis inscrit pour un compte pour un hébergement web gratuit. Le site fournit des bases de données MySQL et j'essaye d'y accéder en utilisant mon application Windows mais je ne peux pas me connecter au serveur. S'il vous plaît considérer mon code:Impossible de se connecter à une base de données en ligne à l'aide de mon application de fenêtre. (C# winforms)

using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Linq; 
using System.Text; 
using System.Windows.Forms; 
using MySql.Data.MySqlClient; 

namespace MySql 
{ 
    public partial class Form1 : Form 
    { 
     BackgroundWorker bg = new BackgroundWorker(); 
     string MyConString = "SERVER=209.51.195.117;" + // MySQL host: sql100.0fees.net 
       "DATABASE=mydb;" +      // IP: 209.51.195.117 
       "UID=myusername;" +  // not really my username 
       "PASSWORD=mypassword;"; // and password 

     public Form1() 
     { 
      InitializeComponent(); 
     } 

     private void Form1_Load(object sender, EventArgs e) 
     { 
      bg.DoWork += new DoWorkEventHandler(bg_DoWork); 
      bg.RunWorkerCompleted += new RunWorkerCompletedEventHandler(bg_RunWorkerCompleted); 
     } 

     void bg_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) 
     { 
      button1.Enabled = true; 
     } 

     void bg_DoWork(object sender, DoWorkEventArgs e) 
     { 
      string status = String.Empty; 
      MySqlConnection connection = new MySqlConnection(MyConString); 
      try 
      { 
       connection.Open(); 
       if (connection.State == ConnectionState.Open) 
        lblStatus.Text = "Connected"; 
       else 
        lblStatus.Text = "No connection"; 
      } 
      catch (Exception x) 
      { 
       lblStatus.Text = x.Message; 
      } 
     } 

     private void button1_Click(object sender, EventArgs e) 
     { 
      lblStatus.Text = "Connecting... please wait."; 
      button1.Enabled = false; 
      bg.RunWorkerAsync(); 
     } 
    } 
} 

Est-il possible de connecter mon application à une base de données en ligne? Ou y a-t-il des erreurs dans mon code?

Par ailleurs, ce message d'erreur étant produit: Unable to connect to any of the specified MySQL hosts.

alt text

+0

Vérifiez sur votre serveur que vous autorisez les connexions à mysql à partir de votre adresse IP. – adrianbanks

+0

comment ...........? – yonan2236

Répondre

1

À moins d'avoir un contrôle total sur le serveur, vous ne pouvez pas exposer le service mysql au Web. Cette restriction est imposée par (presque, il pourrait y avoir des exceptions) tous les hébergeurs gratuits pour des raisons de sécurité. Sauf si vous fournissez un service Web sur le serveur pour accéder aux données, vous ne pouvez pas accéder à la base de données à distance.

0

La plupart en ligne, plans d'hébergement mutualisé ne permettent pas les connexions aux bases de données de clients externes, pour des raisons de sécurité.

Vous devrez probablement utiliser leurs outils pour autoriser les connexions à partir de votre adresse IP ou utiliser une forme de tunnel pour établir la connexion. Par exemple, Dreamhost has instructions for using SSH to tunnel.

Questions connexes