2015-02-19 5 views
0

У меня есть приложение C# с базой данных MYSQL. Я была работа без каких-либо проблем, но вдруг проблема появляется:Подключение к базе данных MYSQL с использованием C#

Первый шанс исключение типа «MySql.Data.MySqlClient.MySqlException» произошло в MySql.Data.dll

я не изменял ни в чем моя программа !!, также я проверил соединение с PHP-страницы, и это работа без проблем, проблема просто появилась в моем приложении C#. В разделе catch я изменил его на: ee.HResult вместо «ee.message», и я получил этот номер: -2147467259 .. !! Вот код:

public static string conString = ""; 
    public MySqlConnection objConn; 
    string server = "www.******.com"; 
    string database = "******"; 
    string uid = "******"; 
    string password = "******"; 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     try 
     { 
      conString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + "; CharSet=utf8;"; 
      objConn = new MySqlConnection(conString); 
      objConn.Open(); 
      MySqlCommand cmd = new MySqlCommand("select * from sett", objConn); 
      MySqlDataReader dataReader = cmd.ExecuteReader(); 
      dataReader.Read(); 
      int x = int.Parse(dataReader.GetDecimal(0).ToString()); 
      MessageBox.Show(x.ToString()); 
     } 
     catch (Exception ee) 
     { 
      MessageBox.Show(ee.Message); 
     } 
    } 
+0

Вы считаете рефакторинг кода и не используете 'dataReader.GetDecimal (0) .ToString()' что, если поле не является десятичным в позиции 0, поэтому почему бы не изменить его как фактическое имя поля базы данных, (строка) dataReader ["yourfieldname"] 'попробуйте сделать шаг через код также – MethodMan

+0

Проблема не в коде, я уверен ... потому что я ничего не изменил! также, в другом пробовал в другом старом приложении, подключенном к той же базе данных, той же проблемой. Он появляется в: objConn.Open(); –

+0

Я думаю, что вам не хватает моей точки. Это не то, что вы изменили ... но что, если структура таблицы изменилась ... поэтому лучше, на мой взгляд, назначить значения из datareader, обратившись к ней по имени своего поля, а не это индексированная позиция .. звучит так, как будто вы сталкиваетесь с проблемой преобразования типа данных .. попробуйте изменить ее и отладить ее, если это имеет значение. Что изменит ее боль ... – MethodMan

ответ

1

Проблема в том, что в «Remote MySQL» в домене. Я добавил отметку %, чтобы разрешить все удаленное подключение к базе данных.

Смежные вопросы