DataReader is reading only even rows
<p>I was Binding Data from DB in Grid view.But in the datasource 'CountryList' only even rows is added from data reader. whats wrong with this code?</p>

<pre><code>using (cmd)
{
    cmd.CommandType = CommandType.StoredProcedure;
    cn.Open();
    using (SqlDataReader dr = cmd.ExecuteReader())
    {
        if (dr.HasRows)
        {
            while (dr.Read())
            {
                CountryList.Add(ParseDataReader(dr));
            }

            cn.Close();
            return CountryList;

        }
    }
}
</code></pre>

<p>and the Parse method is: </p>

<pre><code>public static  Countries ParseDataReader(SqlDataReader dr)
    {
        Countries MyCountries = new Countries();

        dr.Read();

            if (dr["CountryID"]!=DBNull.Value )
            {
                MyCountries.CountryID = (int)dr["CountryID"];
            }
            if (dr["Code"]!=DBNull.Value)
            {
                MyCountries.Code = dr["Code"].ToString();
            }
            if (dr["Name"]!=DBNull.Value)
            {
                MyCountries.Name = dr["Name"].ToString();
            }
            if (dr["RequiresState"]!= DBNull.Value)
            {
                MyCountries.RequiresState = (bool)dr["RequiresState"];
            }
            if (dr["Order"]!=DBNull.Value)
            {
                MyCountries.Order = (decimal)dr["Order"];
            }

        return MyCountries;
    }
</code></pre>

<p>FYI: My stored procedure is returning correct number of rows.But datareader reading only the even rows from the result.</p>
