我发现了很多建议来解决这个未处理的异常,并且我尝试了每一个我能找到(并理解)的东西。这是几个小时,但仍然没有结果......我创建了一个窗体应用程序,要求客户端的信息,我试图将这个信息插入到我在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 2013-05-03 18:17:42
你能通过命令行工具调出MySQL吗?如果没有,请按照您到达的错误消息。它可能与MySQL服务没有运行一样简单(如果你在Windows上)。如果你可以通过命令行进行连接,请查看[this StackOverflow posted](http://stackoverflow.com/questions/4655669/unable-to-connect-to-any-of-the-specified-mysql-hosts),这似乎与你的问题类似。尤其要注意接受的解决方案下方的注释,它显示了如何确定MySQL正在侦听哪个端口。 – 2013-05-03 18:19:10
是的,我可以通过命令行工具调出MySQL。我已经尝试将端口号包含到连接字符串中,实际上我尝试了许多不同的连接字符串。通过MySQL命令行,我能够确认端口号,并验证了在我的防火墙中为该端口创建了一个异常。 – 2013-05-09 12:59:56