DbReader 对象无结果,卡住状态

DbReader object no result, stuck condition

我对将多个结果集(return 从 Select 查询编辑)传递到我的视图感到困惑。在当前实施中:

  1. 控制器有一个函数,可以读取对象代理类型列表中的所有查询结果。
  2. 查询 returned 结果,即列表在 return 语句中传递给视图。

Problem:

The query is good I confirmed it, but the data is not coming into the DbReader. There is no error the program just stops and nothing is returned. Last statement to print in Logs is "In Do-While Read Condition". Am I doing something wrong in my code ? Also, can I pass DbReader object directly in Return statement to my View ?

try
{
    logger.AddLog("Connection Set to CreateCommand");
    cmd = DBConnection.CreateCommand();
    logger.AddLog("Set cmd to Qeueue Stats");
    cmd.CommandText = myQuery;
    logger.AddLog("DbReader cmd Setting");
    DbReader = cmd.ExecuteReader();
    var Reader = cmd.ExecuteReader();
    //  OdbcDat dt = new DataTable();//
    //  dt = cmd.ExecuteReader();
    logger.AddLog("DB Reader Command Complete");
    logger.AddLog("DB Reader.Read() Going To Call");
    DbReader.Read();
    logger.AddLog("DB Reader.Read() Completed Call");
    dataComing = true;
    logger.AddLog("DrReader is:"+ Reader.FieldCount);

    logger.AddLog("Testing Data:" + Reader.GetString(2));

}
catch (Exception e)
{
    dataComing = false;
    logger.AddLog("ERROR while intiating DB Connection in Show Controller,error is:" + e.ToString());
    return View();
}
do
{
     //agents is a LIST of Objects type Agent class
     logger.AddLog("In Do-While Read Condition");
     logger.AddLog("AgentName = " + DbReader["AgentName"].ToString());
     agents.Add(new Agent {
            name = DbReader["AgentName"].ToString(),
            state = DbReader["State"].ToString(),
            systemtime = Convert.ToDateTime(DbReader["SystemTime"].ToString()),
            statechange = Convert.ToDateTime(DbReader["statechange"].ToString()),
     });
} while (DbReader.Read());

return Json(agents, JsonRequestBehavior.AllowGet);

如果您处理多个结果集,则需要调用 NextResult()

link 中检查 'Retrieving Multiple Result Sets using NextResult' 部分。