c# MySql类//连接打开和关闭
本文关键字:连接 MySql | 更新日期: 2023-09-27 18:02:39
我遇到了一个问题。我栈!我不知道我是否需要一个新的课程!我想要一个方法来关闭连接通过一个按钮点击。
我已经创建了构造函数:
public string Server;
public string Username;
public string Pwd;
public string DB;
MySqlConnection conn;
string ConnString;
public DBVerb(string eServer, string eUsername, string ePwd, string eDB)
{
this.Server = eServer;
this.Username = eUsername;
this.Pwd = ePwd;
this.DB = eDB;
}
和这两个方法:
public void Connect(System.Windows.Forms.Label lblStatus)
{
try
{
ConnString = String.Format("server={0};user id={1}; password={2}; database={3}; pooling=false",
this.Server, this.Username, this.Pwd, this.DB);
conn = new MySqlConnection();
conn.ConnectionString = ConnString;
if (conn != null)
conn.Close();
conn.Open();
if (conn.State == ConnectionState.Open)
{
lblStatus.Text = String.Format("Verbindung zu {0} user: {1} Zeit: {2}", this.Server, this.Username, DateTime.Now.ToString());
}
else
{
MessageBox.Show("Felher");
}
}
catch (Exception Ex)
{
MessageBox.Show(Ex.Message, "Fehler:", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
public void ClConnect()
{
conn = new MySqlConnection();
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
}
这里我调用了方法:
private void cmdHerstellen_Click(object sender, EventArgs e)
{
string lServer = txtBServ.Text;
string lUID = txtBUid.Text;
string lPawd = txtBPass.Text;
string lDB = txtBDat.Text;
DBVerb VerbindungHerstellen = new DBVerb(lServer, lUID, lPawd, lDB);
VerbindungHerstellen.Err();
VerbindungHerstellen.Connect(lblStatus);
}
private void cmdAbbr_Click(object sender, EventArgs e)
{
}
如果我调用ClConnect()方法,我必须为参数提供参数,但我已经这样做了,所以它不起作用。
你知道怎么做吗?
将dbconnection存储为类中的字段。当你想关闭它时,你不想用conn = new MySqlConnection();
给它分配一个新的连接对象,而只是想删除那条线,并用检查来替换它,看看conn是否为空。如果它是空的,那么不需要做任何工作(或者可能是一个错误),如果它不是空的,那么你可以检查它是否打开,如果合适的话关闭。
您可能还需要注意在connect方法中创建新对象的位置。如果conn已经存在,您可能不想(或不需要)创建新的连接对象。
我最后的评论是,用户需要点击一个按钮来关闭你的连接,这听起来有点不对劲。这应该是代码所担心的,而不是用户。然而,我显然不知道你在做什么,所以我不能说这绝对是错误的,只是感觉有点不对。:)