gpt4 book ai didi

c# - 在 C# 中调用 MySQL 例程

转载 作者:行者123 更新时间:2023-11-29 21:58:06 34 4
gpt4 key购买 nike

如果我的用词有误,请接受我的歉意;我现在刚刚学习 C#(我的背景主要是 Visual Basic 和 PHP)。

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

我已经有了我的类/例程设置,但我仍然试图从项目的其余部分调用它。我知道在 Visual Basic 中这是一个相当简单的任务,但我似乎不知道如何在 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...
}

使用using关键字,您不需要手动关闭连接,当不再需要时它会自动关闭。

关于c# - 在 C# 中调用 MySQL 例程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32922047/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com