SHOW COLLATION;
will list the possible values.
Connections, etc:
http://dev.mysql.com/doc/refman/5.0/en/charset-connection.html
latin capital letter O with double acute (U+0150) -- That is handled by both latin2 and utf8. But, please note that 0150 is "unicode", as distinct from either of those.
SET NAMES... "How and where exactly?" -- Treat the SET names as SQL to execute. That is, execute it in the same way you would an INSERT. But be sure to do it right after opening the connection. Sorry, I am not familiar with ado.net or C#, so I can't be more specific.
phpmyadmin and ado.net are separate connections; SET NAMES (hence SHOW VARAIBLES LIKE 'conn%') won't necessarily be the same for the two connections.
Where do your latin2 or utf8 characters come from? Some file? Some special keystrokes on the keyboard? Even knowing the answers to this question won't help much, because programming languages try to fix things for you. (But they tend to add extra encoding changes that you aren't expecting.) Again, I can't speak for ADO.NET or C#; I do know that Perl and PHP can mess characters up.
Do you have any characters that _might_ be stored in a table?
SELECT x, HEX(x), LENGTH(x), CHAR_LENGTH(x) FROM ...
If you find any case where LENGTH and CHAR_LENGTH are not equal, the you probably have latin2 or utf8 (even if 'x' itself shows as latin1). Show me the SELECT output, I might be able to say "you got the characters stored correctly; now the problem is reading them out". (Or they might have been messed up during the INSERT.)