2012-05-08 13 views
11

Estoy usando C# y estoy tratando de conectarme a la base de datos MySQL alojada por 00webhost.¿Cómo formar una cadena de conexión MySQL correcta?

estoy consiguiendo error en la línea connection.Open():

no existe ninguna máquina MySQL con esos parámetros.

He comprobado y todo parece estar bien.

string MyConString = "SERVER=mysql7.000webhost.com;" + 
     "DATABASE=a455555_test;" + 
     "UID=a455555_me;" + 
     "PASSWORD=something;"; 
     MySqlConnection connection = new MySqlConnection(MyConString); 
     MySqlCommand command = connection.CreateCommand(); 
     MySqlDataReader Reader; 
     command.CommandText = "INSERT Test SET lat=" + 
      OSGconv.deciLat + ",long=" + OSGconv.deciLon; 
     connection.Open(); 
     Reader = command.ExecuteReader(); 
     connection.Close(); 

¿Qué problema hay en esta cadena de conexión?

+0

¿Hay un error tipográfico en el nombre del sitio o la cadena de conexión? – Chriseyre2000

+0

¿La impresión 'MyConString' parece correcta en el depurador? –

+2

Creo que debería usar command.executenonquery en lugar de reader = command.ExecuteReader(); Y sobre su comando sql, creo que debería ser 'Insertar en prueba (lat, largo) Valores (' "+ OSGconv.deciLat +" ',' "+ OSGconv.deciLon +" ')' – Hiren

Respuesta

21

intente crear cadena de conexión de esta manera:

MySqlConnectionStringBuilder conn_string = new MySqlConnectionStringBuilder(); 
conn_string.Server = "mysql7.000webhost.com"; 
conn_string.UserID = "a455555_test"; 
conn_string.Password = "a455555_me"; 
conn_string.Database = "xxxxxxxx"; 

using (MySqlConnection conn = new MySqlConnection(conn_string.ToString())) 
using (MySqlCommand cmd = conn.CreateCommand()) 
{ //watch out for this SQL injection vulnerability below 
    cmd.CommandText = string.Format("INSERT Test (lat, long) VALUES ({0},{1})", 
            OSGconv.deciLat, OSGconv.deciLon); 
    conn.Open(); 
    cmd.ExecuteNonQuery(); 
} 
+0

Todavía estoy obteniendo: No se puede conectar a ninguno de los hosts MySQL especificados. –

2
string MyConString = "Data Source='mysql7.000webhost.com';" + 
"Port=3306;" + 
"Database='a455555_test';" + 
"UID='a455555_me';" + 
"PWD='something';"; 
3

He aquí un ejemplo:

MySqlConnection con = new MySqlConnection(
    "Server=ServerName;Database=DataBaseName;UID=username;Password=password"); 

MySqlCommand cmd = new MySqlCommand(
    " INSERT Into Test (lat, long) VALUES ('"+OSGconv.deciLat+"','"+ 
    OSGconv.deciLon+"')", con); 

con.Open(); 
cmd.ExecuteNonQuery(); 
con.Close(); 
+0

Al menos para C#, es Servidor y no ServerName – boctulus

Cuestiones relacionadas