bool boolVar = false;
if (!bool.TryParse(dataReader["BOOL_FLAG"], out boolVar))
throw new Exception("Didn't read a boolean!");
int intVar = int.MinValue;
if (!int.TryParse(dataReader["INT_VALUE"], out intVar))
throw new Exception("Didn't read a boolean!");
If you need nullable values, you could set them in the if statement like
bool boolVar = false;
bool? finalBool = false;
if (!bool.TryParse(dataReader["BOOL_FLAG"], out boolVar))
finalBool = null;
else
finalBool = (bool?) boolVar;
int intVar = int.MinValue;
int? finalInt = int.MinValue
if (!int.TryParse(dataReader["INT_VALUE"], out intVar))
finalInt = null
else
finalInt = (int?) intVar;
Hope this helps!
Hogan