When dealing with nullable fields in a SqlDataReader, use:
int? field_a = reader["field_a"] as int?; string field_b = reader["field_a"] as string;
instead of:
int? field_a = Convert.ToInt32(reader["field_a"]); string field_b = Convert.ToString(reader["field_a"]);