2013-06-27 5 views
0

Я возился с кодом C# от Magic Vision (https://github.com/petesimard/Magic-Vision). Когда я отлаживаю его с помощью Visual C# 2010 Express, я получаю сообщение об ошибке sql.Open(), которая говорит:Не удается подключиться к указанному хосту MySQL?

«Исключение MySQL было необработанным: невозможно подключиться к любому из указанных узлов MySQL».

Как устранить эту ошибку?

using System; 
using System.Data; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using MySql.Data.MySqlClient; 


namespace PoolVision 
{ 
public class MySqlClient 
{ 
    private MySqlConnection sql; 

    public DataRow dbRow(String query) 
    { 
     MySqlCommand command = sql.CreateCommand(); 
     command.CommandText = query; 

     DataTable selectDT = new DataTable(); 
     MySqlDataAdapter dataAd = new MySqlDataAdapter(command); 

     dataAd.Fill(selectDT); 

     if (selectDT.Rows.Count > 0) 
      return selectDT.Rows[0]; 
     else 
      return null; 
    } 

    public int lastInsertId() 
    { 
     DataRow r = dbRow("SELECT last_insert_id() as lid"); 

     Int64 id = (Int64)r[0]; 

     return (int)id; 
    } 

    public int affectedRows() 
    { 
     DataRow r = dbRow("SELECT ROW_COUNT()"); 
     int id = (int)r[0]; 

     return id; 
    } 

    public DataTable dbResult(String query) 
    { 
     MySqlCommand command = sql.CreateCommand(); 
     command.CommandText = query; 

     DataTable selectDT = new DataTable(); 
     MySqlDataAdapter dataAd = new MySqlDataAdapter(command); 

     dataAd.Fill(selectDT); 

     return selectDT; 

    } 

    internal int dbNone(string query) 
    { 
     MySqlCommand command = sql.CreateCommand(); 
     //MySqlDataReader Reader; 
     command.CommandText = query; 
     return command.ExecuteNonQuery(); 
    } 

    public MySqlClient(String SqlConString) 
    { 
     sql = new MySqlConnection(SqlConString); 
     sql.Open(); 
    } 

    public DateTime ConvertFromUnixTimestamp(double timestamp) 
    { 
     DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0); 
     return origin.AddSeconds(timestamp); 
    } 

    public double ConvertToUnixTimestamp(DateTime date) 
    { 
     DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0); 
     TimeSpan diff = date - origin; 
     return Math.Floor(diff.TotalSeconds); 
    } 
} 
} 
+1

Возможно, вы неправильно отформатировали строку 'MySqlConnection'. [Этот сайт] (http://www.connectionstrings.com/mysql) является моей любимой ссылкой на строку подключения. –

+0

Либо то, что сказал Эван, или, может быть, нет пути к хозяину? Удостоверьтесь, что вы можете разрешить имя хоста и/или ping ip из машины, на которой выполняется этот код. – AndyPerfect

ответ

1

Проверьте свою строку подключения и убедитесь, что она действительна для сервера и базы данных, к которой вы пытаетесь подключиться.