在一个类中定义MySqlConnection,并在另一个类使用它来处理DB
本文关键字:另一个 DB 处理 MySqlConnection 一个 定义 | 更新日期: 2023-09-27 17:57:40
也许是个简单的问题,但现在我很难想象这个例子中的面向对象概念。我已经在c#中的一个单独的类中定义了MySqlConnection(单独的/.cs/文件)。
class MySQLConnect
{
public bool ConnectToMySQL()
{
string cs = @"server=127.0.0.1; user id=root; password=''; database=cluster";
MySqlConnection conn = null;
try
{
conn = new MySqlConnection(cs);
conn.Open();
MessageBox.Show("Pripojené k DB : {0}", conn.ServerVersion);
}
catch (MySqlException ex)
{
MessageBox.Show("Error: {0}", ex.ToString());
}
return true;
}
}
在表单类中,我定义了这样的连接对象:
MySQLConnect con = new MySQLConnect();
现在,我在表单类中单击按钮调用ConnectToMySQL方法
private void button1_Click(object sender, EventArgs e)
{
con.ConnectToMySQL();
}
比方说,我希望有另一个单独的类,它将有一个执行一些sql查询的方法。单击按钮时也会调用此方法。我应该如何在我的新类中使用从MySQLConnect类建立的连接?
谢谢。
您可以像一样在类中声明SqlConnection字段
static class MySQLConnect
{
private static SqlConnection _Connection;
public static SqlConnection Connection
{
get
{
if(_Connection == null)
{
string cs = @"server=127.0.0.1; user id=root; password=''; database=cluster";
_Connection = new MySqlConnection(cs);
}
if(_Connection.State == ConnectionState.Closed)
try
{
conn.Open();
}
catch(Exception ex)
{
//handle your exception here
}
return _Connection;
}
}
}
然后,您可以使用访问旧项目中的SqlConnection
SqlConnection myConnection = MySQLConnect.Connection;
这是一个快速的例子,在项目的所有时间里都会打开连接,而最好只通过类中的"open"answers"close"等方法打开和关闭连接。
所以我建议创建一个MyConnect类Singleton,并使用一个非静态的SqlConnection对象,这样你就能做得更好。