也许是简单的问题,但是现在我很难想象这个例子中面向对象的概念。我已经在c#(单独的/.cs/文件)中的一个单独的类中定义了MySqlConnection。
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类中已建立的连接?
谢谢。
答案 0 :(得分:1)
您可以在类中声明一个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;
这是一个快速的例子,在项目的所有时间都打开了连接,而最好只通过类中的“打开”和“关闭”等方法打开和关闭它。
所以我建议创建一个MyConnect类Singleton并使用非静态SqlConnection对象,这样你就可以做得更好。