У меня проблема.У меня есть цикл, настроенный для статистического анализа двух функций.Первый раз через цикл все нормально в обеих функциях.Во второй раз через цикл вторая функция не возвращает никаких результатов.
Я не понимаю, почему в первый раз через циклы я получаю результаты из dataReader, а каждый последующий раз я ничего не получаю (datareader.hasRows == false
)
Любая помощь будет отличной.Заранее спасибо.
Ниже приведен краткий обзор кода для структуры цикла и второй функции (которая не работает)
startDate = new DateTime(2010, 1, 1);
for(int i = 0; i < 20; i++)
{
for(int j = 1; j <= 12; j++)
{
endDate = new DateTime(2010, j, 1);
schedule = new Schedule();
scheduleXml = string.Empty;
ISession newSession = session.SessionFactory.OpenSession();
scheduleXml = GetScheduleXml(startDate, endDate, locationIds, newSession);
schedule = GetSchedule(schedule, startDate, endDate, locationIds, newSession);
newSession.Close();
}
}
public static Schedule GetSchedule(Schedule schedule, DateTime startDate, DateTime endDate, int locationIds, ISession session)
{
string sqlGetActivitiesTreatmentsRegimens = // Custom SQL Select Statement (I have verified it returns results)
using (OracleCommand comm = new OracleCommand(sqlGetActivitiesTreatmentsRegimens, (OracleConnection)session.Connection))
{
try
{
OracleParameter plantIdParam = comm.CreateParameter();
plantIdParam.DbType = DbType.Int32;
plantIdParam.Value = plantId;
comm.Parameters.Add(plantIdParam);
OracleParameter startDateParam = comm.CreateParameter();
startDateParam.DbType = DbType.DateTime;
startDateParam.Value = startDate;
comm.Parameters.Add(startDateParam);
OracleParameter endDateParam = comm.CreateParameter();
endDateParam.DbType = DbType.DateTime;
endDateParam.Value = endDate;
comm.Parameters.Add(endDateParam);
using(OracleDataReader dr = comm.ExecuteReader())
{
while(dr.Read())
{
// does stuff here
}
}
}
catch (Exception ex)
{
throw new Exception("Source:GetRegimensEx:" + ex.Message, ex.InnerException);
}
}
return new Schedule();
}