Поместите инициализацию вашего читателя в блок using
, и я бы не стал использовать номера столбцов, если вы можете, так как они по сути превращаются в магические числа. К сожалению, для этого просто необходимо использовать имена столбцов, но я обнаружил, что имена столбцов с меньшей вероятностью изменятся, чем смещения столбцов, и вы всегда можете поместить имена столбцов в файл конфигурации или что-то в этом роде. Кроме того, убедитесь, что вы принимаете во внимание возможность для пустых столбцов
using(var reader = SqlHelper.ExecuteReader(etc. etc. etc.))
{
while(reader.read()){
{
//Only need to do this if you don't want your string to be null
//and if the "columnName" column is nullable.
var stringValue = reader.IsDBNull(reader.GetOrdinal("columnName")
? ""
: reader.GetString(reader.GetOrdinal("columnName"));
a.Add(stringValue);
}
}