Ответ MySQL, слегка адаптированный из примера MSDN для MySqlDataReader.GetValues :
//assumes you've already created a connection, opened it,
//and executed a query to a reader
while(reader.Read())
{
Object[] values = new Object[reader.FieldCount];
int fieldCount = reader.GetValues(values);
Console.WriteLine("\nreader.GetValues retrieved {0} columns.", fieldCount);
for (int i = 0; i < fieldCount; i++)
Console.WriteLine(values[i]);
}
Использование MySqlDataReader.FieldCount
позволит вам получить количество столбцов в строке, которую вы запросили.