2013-05-03 69 views
0

我发现了很多建议来解决这个未处理的异常,并且我尝试了每一个我能找到(并理解)的东西。这是几个小时,但仍然没有结果......我创建了一个窗体应用程序,要求客户端的信息,我试图将这个信息插入到我在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 ...

如果你能帮助我,我会很感激。这是我第一年编程,到目前为止它已经很好地通过了,但现在我因为这种反复出现的错误而在我的课堂上“落后”。预先感谢您:)

+2

您有一个SQL注入漏洞。 – SLaks 2013-05-03 18:17:42

+0

你能通过命令行工具调出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

+0

是的,我可以通过命令行工具调出MySQL。我已经尝试将端口号包含到连接字符串中,实际上我尝试了许多不同的连接字符串。通过MySQL命令行,我能够确认端口号,并验证了在我的防火墙中为该端口创建了一个异常。 – 2013-05-09 12:59:56

回答

3

我的教授能够找到问题。出于某种原因,我的电脑无法识别IP地址127.0.0.1,因此当我在连接字符串中写入server = localhost时,出现错误。当我试图写服务器= 127.0.0.1一切工作顺利。我希望这是有帮助的。

工作连接字符串:

"Persist Security Info=False;server=127.0.0.1;database=xx;uid=yy;password=zz" 
+0

那么在我的情况下,它不工作...对不起... – 2014-04-14 17:09:40

0

与建立连接到远程站点的问题将通过提供公网IP的那个分贝,而不是私人一个来解决。

它会帮助你。 试试吧。

相关问题