我现在在我的项目中碰壁了。我有一个带有一些列表框的表单和添加按钮。当我点击添加按钮时,我得到一个带有文本框、确定和取消按钮的小对话框。该应用程序已连接到 MySQL 数据库。因此,每当文本更改时,程序都会检查该名称是否存在于数据库中,禁用“确定”按钮,如果名称存在,则文本框变为红色,否则将它们恢复正常。当我正在写作并且名称不存在时,它可以正常工作,并且当它存在时,它会变成红色,就像它应该的那样。这就是问题所在。变红后,即使输入有效名称,也不会恢复正常。
这是代码:
private void DialogTxb_TextChanged(object sender, EventArgs e)
{
//ConnexionData class where i do all the SQL manipulation
MySqlDataReader selection = ConexionData.CheckSectionName(DialogTxb.Text);
while (selection.Read())
{
if (selection.HasRows)
{
DialogOk.Enabled = false;
toolTip1.Show("La section existe", TooltibLb);
DialogTxb.BackColor = System.Drawing.ColorTranslator.FromHtml("#ffaaaa");
}
else
{
toolTip1.Hide(TooltibLb);
DialogTxb.BackColor = Color.White;
DialogOk.Enabled = true;
}
}
ConexionData.ConexionClose();//Method to close connection
}
我想我知道问题出在哪里,但不知道它为什么会发生以及如何解决它。如果我只是退出表单并尝试执行其他任何操作,例如从列表框中选择另一个元素将触发某些数据库交互,则程序关闭和 Visual Studio 会向我提供有关错误的信息:“连接已打开”。我试图在代码的其他时刻关闭,在互联网上寻找一些解决方案,尝试过MysqlConection.ClearAllPools(),仍然是同样的问题。
Connexion 在应用程序的其他部分正确打开和关闭。
感谢您的关注。
智慧大石
相关分类