public void ExecuteAction(MySqlCommand query, Action<MySqlDataReader> action)
{
_connection.Open();
query.Connection = _connection;
using(var reader = query.ExecuteReader())
{
while (reader.Read())
{
action(reader);
}
reader.Close();
}
_connection.Close();
}
有可能做这样的事情吗?我总是收到错误“阅读器关闭时读取尝试无效”。
这是我正在使用的一段代码:
private void UpdateRecords()
{
var query = String.Format("SELECT * FROM {0}", _table);
var cmd = new MySqlCommand(query);
_db.ExecuteAction(cmd, reader =>
{
var rows = new List<object>();
for (var i = 0; i < reader.FieldCount; i++)
{
if (reader.IsDBNull(i)) continue;
var name = reader.GetName(i);
if (!_fields.Contains(name)) _fields.Add(name);
rows.Add(reader.GetValue(i));
}
_records.Add(new Record(_fields, rows));
});
}
我正在尝试将数据库表的所有记录存储到程序内的动态类中。当我尝试将动态 mysql 数据添加到这些类中时,出现此错误。
另一个相关的问题:有没有图书馆可以为我做这个?很多代码我不必写下来,但这是我第一次接触 MySQL 和 C#,所以我没有任何类型的知识。谢谢你的帮助。
更新:现在我得到连接已经打开的错误,MySQL 让我诅咒(我习惯了 MongoDB ......)