【发布时间】:2016-11-29 06:52:18
【问题描述】:
我是 C# 新手,我的方法在 try catch connection is already open 代码中显示错误如下,当我从 Class 方法关闭它时,Form 收到错误 invalid connection。在这里,如果将所有代码都放在 FORM 中,它就可以工作。但在这里我得到MysqlDataReader 作为返回值。我该如何解决这个错误。
类
//select all categories
public MySqlDataReader SelectCategory() {
try
{
MySqlCommand cmd = connection.CreateCommand();
cmd.CommandText = "SELECT * FROM categories WHERE online = 1";
connection.Open();
MySqlDataReader categories = cmd.ExecuteReader();
return categories;
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
return null;
}
}
表格
public void show()
{
MySqlDataReader rd = db.SelectCategory();
try
{
while (rd.Read())
{
listBox1.Items.Add(rd.GetString(1));
}
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
【问题讨论】:
-
你从来不关闭连接,为什么每次都打开呢?而回头客也不是一件好事。返回数据。你甚至永远不会关闭阅读器。
-
我对此一无所知..
-
你在哪里定义变量
connection? -
我有一个类在那里连接定义为名副其实
-
` public DBConnect() { Initialize(); ; } 私人无效初始化(){服务器=“本地主机”;数据库=“pos3”; uid = "根";密码 = "";字符串连接字符串;连接字符串=“服务器=”+服务器+“;” +“数据库=”+数据库+“;” + "UID=" + uid + ";" + "密码=" + 密码 + ";";连接 = 新的 MySqlConnection(connectionString); }`
标签: c# mysql .net database-connection mysqldatareader