rdr.Read()
перемещает DataReader к следующим записям и возвращает, если вообще есть следующая запись. Так что вы можете написать:
Dim GetInvHeaderValue As Object
While rdr.Read()
GetInvHeaderValue = rdr(0)'if this value is in Column-Index 0'
GetInvHeaderValue = rdr("GetInvHeaderValue")'if a Column with this name exists'
GetInvHeaderValue = rdr.GetString(0)'returns a String representation(there are getter for all common types)'
End While
Вы только конвертируете логическое значение, которое указывает, есть ли следующая запись, в строку («True» / «False»).
Посмотрите на MSDN для получения дополнительной информации.