2012-08-29 132 views
1

我想从C#连接到mysql服务器。我发现在网络上的一些代码,但地方也有一些是错误的,因为我得到将C#连接到Mysql数据库

类型“System.ArgumentException”的第一次机会异常出现在system.data.dll

错误。

private void Initialise() 
    { 
     server = "dns to server"; 
     database = "db_name"; 
     uid = "root"; 
     password = "password"; 
     string connectionString; 
     connectionString = "SERVER=" + server + ";" + "DATABASE=" + 
          database + ";" + "UID=" + 
          uid + ";" + "PASSWORD=" + password + ";"; 
      OR 
     connectionString = "Server=xxx.no-ip.org;Database=rdb;"+ 
       "Uid=root;Pwd=wHt2%Zt;"; 
     connection = new MySqlConnection(connectionString); 
     if (this.OpenConnection() == true) 
      Console.Out.Write("SUCCESS"); 
     else 
      Console.Out.Write("ERROR"); 
    } 

private bool OpenConnection() { 
      try { 
       connection.Open(); 
       return true; 
      } 
      catch (MySqlException ex){      
       switch (ex.Number) { 
        case 0: 
         MessageBox.Show("Cannot connect to server. Contact administrator"); 
         break;  
        case 1045: 
         MessageBox.Show("Invalid username/password, please try again"); 
         break; 
       } 
       return false; 
      } 
     } 

我在控制台上没有收到任何消息。我添加了Mysql.Data作为我的项目的参考,我用using MySql.Data.MySqlClient;

我也试过connectig通过gui但没有运气。想法?

编辑1:与任何连接字符串我的程序仍然无法正常工作。

编辑2:添加了OpenConnection方法。

编辑3:This is the error i get !

+1

您可以显示OpenConnection的代码()?也请尝试将“PASSWORD =”更改为“Pwd =” – coolmine

+0

编辑的问题。我的程序没有那么远。我认为我的问题是connection = new MySqlConnection(connectionString)这部分。 –

+0

如果您将引发异常的行封装在try catch块中,您将获得更多关于为什么抛出异常的信息。也请尝试改变我在第一篇文章中所说的内容。 – coolmine

回答

1

附:

http://www.connectionstrings.com/mysql

可能需要改变你的方法......使用webconfig或应用程序配置设置,并从配置读取你的ConnectionStrings ...

我也建议你阅读这一点。 ..

http://www.codeproject.com/Articles/12300/An-ASP-NET-Application-Using-a-MySQL-Database

UPDATE

根据您的更新发现...可能有两个问题,首先仔细检查您的连接字符串,其次是检查用户“root”是否具有所需的权限。

+0

我不认为我的计划是那么敏感。我希望它工作,他们使它美丽。 –

+0

请参考第二个链接... – NiK

+1

app.config/web.config是美女吗?我认为这是存储连接字符串的标准方法。懒惰的用法。 – varg

0
Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword; 

我认为这个问题是你的数据库服务器:

Server=xxx.no-ip.org 

看来你的应用程序不找到服务器。检查防火墙。

可以调试和设置断点,并检查它抛出哪个异常,不只是数量

+0

我的问题是密码。它包含“;”除其他迹象外。我改变它,现在我得到“错误”。我现在必须调查这个错误。 –

+1

在这里可能不是这样,但dbs通常配置为不允许远程root登录到MySQL我似乎记得。可能要仔细检查是否允许root远程连接。 – Mike

+0

我会检查并回答一个答案。 –