C# 在C中调用MySQL例程#

C# 在C中调用MySQL例程#,c#,mysql,class,C#,Mysql,Class,如果我的措辞有误,请接受我的道歉;我刚刚在学习C#(我的背景主要是visualbasic和PHP) 我想做的是在C#(Windows窗体)中创建一个类/例程,用于连接和断开与MySQL数据库的连接,然后可以在项目的其余部分重用该类/例程,而无需每次重复代码 我已经完成了我的课程/例行程序设置,但我一直在努力从项目的其余部分调用它。我知道在VisualBasic中这是一个相当简单的任务,但我似乎不知道如何在C#中完成它 有什么建议吗?先谢谢你 public void dbDisconnect(ob

如果我的措辞有误,请接受我的道歉;我刚刚在学习C#(我的背景主要是visualbasic和PHP)

我想做的是在C#(Windows窗体)中创建一个类/例程,用于连接和断开与MySQL数据库的连接,然后可以在项目的其余部分重用该类/例程,而无需每次重复代码

我已经完成了我的课程/例行程序设置,但我一直在努力从项目的其余部分调用它。我知道在VisualBasic中这是一个相当简单的任务,但我似乎不知道如何在C#中完成它

有什么建议吗?先谢谢你

public void dbDisconnect(object sender, EventArgs e)
{
     try
     {
          MySqlConnection connection = new MySqlConnection(Properties.Settings.Default.mysql_db_conn_string);
          connection.Close();
     }
     catch (Exception ex)
     {
          MessageBox.Show(ex.Message);
     }
}

以下是我目前在应用程序中使用的一种方法:

public static MySqlConnection CreateConnection(
        string mysqlServer,
        string mysqlUser,
        string mysqlPassword,
        string mysqlDatabase)
{
    MySqlConnection mysqlConnection = null;

    string mysqlConnectionString = String.Format(
        "server={0};uid={1};pwd={2};database={3};DefaultCommandTimeout={4};",
        mysqlServer, mysqlUser, mysqlPassword, mysqlDatabase, 120);

    /** 
     ** Workaround for MySQL 5.6 bug:
     ** http://stackoverflow.com/questions/30197699/reading-from-stream-failed-mysql-native-password-error 
     */
    int tryCounter = 0;
    bool isConnected = false;
    do
    {
        tryCounter++;
        try
        {
            mysqlConnection = new MySqlConnection();
            mysqlConnection.ConnectionString = mysqlConnectionString;
            mysqlConnection.Open();

            if (mysqlConnection.State == ConnectionState.Open)
            {
                isConnected = true;
            }
        }
        catch (MySqlException ex)
        {
            if (tryCounter < 10)
            {
                DebugLog.Dump(ex.ToString(), DebugLog.MainLogFilePath);
                Thread.Sleep(10000); // 10 seconds.
            }
            else
            {
                throw;
            }
        }
    } while (!isConnected);

    return mysqlConnection;
}
使用关键字,您无需手动关闭连接,当不再需要连接时,它将自动关闭

using (MySqlConnection hostsDbConnection = HostsDbConnector.CreateConnection())
{
    // Do something...
}