【问题标题】:Connect C# to Mysql database将 C# 连接到 Mysql 数据库
【发布时间】:2012-08-29 19:38:36
【问题描述】:

我想从 C# 连接到 mysql 服务器。我在网上找到了一些代码,但是有些地方出了问题,因为我得到了

System.Data.dll 中发生了“System.ArgumentException”类型的第一次机会异常

错误。

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;

我也尝试通过 gui 进行连接,但没有运气。想法?

编辑 1:使用任一连接字符串,我的程序仍然无法运行。

编辑 2:添加了 OpenConnection 方法。

编辑 3:This is the error i get !

【问题讨论】:

  • 你能显示 OpenConnection() 的代码吗?也尝试将“PASSWORD=”更改为“Pwd="
  • 问题已编辑。我的程序没有那么远。我认为我的问题在于 connection = new MySqlConnection(connectionString) 这部分。
  • 如果您将引发异常的行包装在 try catch 块中,您将获得有关引发异常的原因的更多信息。也尝试改变我在第一篇文章中所说的内容。
  • 问题出在我的设置上。第一个问题:我的密码包含一个分号。第二个问题:我的服务器不接受远程登录。我还没有测试我的代码,但我今晚会测试它。非常感谢您的想法。

标签: c# mysql database-connection


【解决方案1】:

附言

http://www.connectionstrings.com/mysql

您可能需要更改方法...使用 webconfig 或应用程序配置来设置和读取配置中的连接字符串...

我还建议您阅读此内容...

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

更新

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

【讨论】:

  • 我认为我的程序没有那么敏感。我希望它起作用,它们使它变得美丽。
  • app.config/web.config 是美女吗?我认为这是存储连接字符串的标准方法。懒惰使用。
【解决方案2】:

看这里:http://www.connectionstrings.com/mysql 拥有一切。

【讨论】:

    【解决方案3】:
    Server=myServerAddress;Port=1234;Database=myDataBase;Uid=myUsername;Pwd=myPassword;
    

    我认为问题出在您的数据库服务器上:

    Server=xxx.no-ip.org
    

    您的应用似乎找不到服务器。检查防火墙。

    您可以调试和设置中断点并检查它抛出的异常,而不仅仅是数量

    【讨论】:

    • 我的问题是密码。它包含“;”除其他迹象外。我改变它,现在我得到“错误”。我现在必须调查这个错误。
    • 这里可能不是这种情况,但我似乎记得 dbs 通常被配置为不允许在 MySQL 中远程 root 登录。可能需要仔细检查是否允许 root 远程连接。
    • 我会检查并返回答案。
    猜你喜欢
    • 2014-01-19
    • 1970-01-01
    • 1970-01-01
    • 2011-11-18
    • 2019-12-09
    • 2012-04-27
    • 2013-07-26
    • 2013-07-21
    • 2019-04-15
    相关资源
    最近更新 更多