Your problem is on these two lines:
MySqlCommand cd = new MySqlCommand("SELECT CAST(Specie AS varchar) + '#' + CAST(Specie_Price AS varchar) AS Specie FROM pets", cs);
PetPrice.Text = Convert.ToString(cd.ExecuteReader());
The first one will return all your records cast as the string concatenation, I suspect you only want one, so you need to have a WHERE clause in the SQL statement (WHERE Specie = 'Whatever').
The second part, ExecuteReader does just that, it creates an IDataReader that can page through the results of your query. When you cast it to a string, you just get back the data type as a string, what you want is:
PetPrice.Text = Convert.ToString(cd.ExecuteScalar());
Which returns the first column of the first result in your query.