我有以下代码:DbDataReader自己关闭?
var entityConnection = (System.Data.EntityClient.EntityConnection)c.Connection;
DbConnection conn = entityConnection.StoreConnection;
ConnectionState initialState = conn.State;
List<Jobs> list = new List<Jobs>();
int id = 0;
try
{
if (initialState != ConnectionState.Open)
conn.Open();
using (DbCommand cmd = conn.CreateCommand())
{
cmd.CommandText = sql;
reader = cmd.ExecuteReader();
int count = 0;
while (reader.Read())
{
id = int.Parse(reader[0].ToString());
list.Add(db.Jobs.Where(x => x.JobId == id).First());
//count++;
//if (count == 150) break;
reader.NextResult();
}
}
}
,我也得到一个错误说:“system.invalidoperationexception:无效试图调用NextResult当读取器已关闭”
但事情是我还没有关闭的读者,但是当我删除此行:
list.Add(db.Jobs.Where(x => x.JobId == id).First());
然后一切正常!但是这对我来说是无用的,因为我需要从阅读器填充一个列表对象,如果我不能这样做 - 那么我就无法读取表格了! (PS我避免SqlDataReader对象,并使用实体框架作出上述呼吁使用dbdatareader与我同它相关联)
这是我的实体对象 - 但我删除此,而是试图使通用int类型的列表,然后做list.Add(ID);在那一行代替,但仍然有同样的问题:-s – David 2009-11-07 19:11:41
任何人都可以帮忙吗? – David 2009-11-07 19:19:50