Your query is returning three columns, and the column ordinal is 0 based, so your ordinals would be 0, 1, and 2, like this:
int size = dr.GetInt32(1);
int quantity = dr.GetInt32(2);
string variant = dr.GetString(0);
As your query returns variant_name
, size
and quantity
in that order (0, 1, and 2).