Я нашел много предложений, чтобы исправить это необработанное исключение, и я пробовал все, что мог найти (и понять). Это были часы, но все еще никаких результатов ... Я создал приложение форм Windows, которое запрашивает информацию о клиенте, и я пытаюсь вставить эту информацию в базу данных, созданную в MySQL. Это код, который, кажется, работает для всех, кроме меня:невозможно подключиться к любому из указанных узлов mysql. C#
public partial class Form1 : Form
{
private MySqlConnection mConn;
public Form1()
{
InitializeComponent();
mConn = new MySqlConnection("Persist Security Info=False; server=localhost; database=xxxxxxx;uid=yyyyyyy;password=zzzzzzzz");
}
private void button1_Click(object sender, EventArgs e)
{
mConn.Open();
if (mConn.State == ConnectionState.Open)
{
MySqlCommand command = new MySqlCommand("INSERT INTO client VALUES (" + textBox1.Text + ",' " + textBox2.Text + "', '" + textBox3.Text + "'," + textBox4.Text + ",' " + textBox5.Text + "')", mConn);
command.ExecuteNonQuery();
mConn.Close();
}
else
MessageBox.Show("Connection Failed!");
}
}
Это текст исключение:
MySql.Data.MySqlClient.MySqlException (0x80004005): Не удалось подключиться к любому из указанных Хосты MySQL. ---> System.Net.Sockets.SocketException (0x80004005): запрошенный адрес недействителен в этом контексте [:: 1]: 3306 in ...
Если вы можете мне помочь, я буду очень признательна. Это мой первый год программирования, и до сих пор он прошел достаточно хорошо, но теперь я был «оставлен» в своем классе из-за этой повторяющейся ошибки. Заранее спасибо :)
У вас есть уязвимость в SQL-инъекции. – SLaks
Вы можете вызвать MySQL через утилиту командной строки? Если нет, следуйте сообщениям об ошибках, которые вы получите там. Это может быть так просто, как служба MySQL не работает (если вы работаете в Windows). Если вы можете подключиться через командную строку, проверьте [эту публикацию StackOverflow] (http://stackoverflow.com/questions/4655669/unable-to-connect-to-any-of-the-specified-mysql-hosts), что похоже на вашу проблему. Особенно обратите внимание на комментарий ниже принятого решения, в котором показано, как определить, какой порт прослушивает ваш MySQL. –
Да, я могу вызвать MySQL через утилиту командной строки. И я уже пытался включить номер порта в строку подключения, на самом деле я пробовал много разных строк подключения. Через командную строку MySQL я смог подтвердить номер порта, и я подтвердил, что в моем брандмауэре для этого порта было создано исключение. –