【发布时间】:2009-05-07 04:42:11
【问题描述】:
我有以下用于从数据库中填充 DAO 的方法。它执行 3 次读取 - 一次读取主要对象,两次读取一些翻译。
public bool read(string id, MySqlConnection c)
{
MySqlCommand m = new MySqlCommand(readCommand);
m.Parameters.Add(new MySqlParameter("@param1", id));
m.Connection = c;
MySqlDataReader r = m.ExecuteReader();
r.Read();
accountID = Convert.ToInt32(r.GetValue(0).ToString());
...
comment = r.GetValue(8).ToString();
r.Close();
m = new MySqlCommand(getAccountName);
m.Parameters.Add(new MySqlParameter("@param1", accountID));
m.Connection = c;
r = m.ExecuteReader();
r.Read();
account1Name = r.GetValue(0).ToString();
r.Close();
m = new MySqlCommand(getAccountName);
m.Parameters.Add(new MySqlParameter("@param1", secondAccountID));
m.Connection = c;
r = m.ExecuteReader();
r.Read();
account2Name = r.GetValue(0).ToString();
r.Close();
return true;
}
在account2Name = r.GetValue(0).ToString();线上我收到以下错误:
Invalid attempt to access a field before calling Read()
我不明白问题出在哪里 - 上一行调用了 read!
【问题讨论】: