I'm gonna provoke a bit of an argument here, I'm sure of that, but my recommendation is to go for C# .NET. There are MANY job opportunities for good C# developers out there - just scour any recruitment website any you'll see dozens of job openings. Believe me, even at my current company we are desperately seeking some skilled C# developers.
On the platform side, I have to disagree with Gnome. Yes, you are bound to Microsoft technologies (not on the database side though - you can use ODBC for other db's as well), but you have the flexibility of easily importing class libraries written in other languages that are part of the .NET framework (VB.NET, C#, J#, VC++, etc.). The libraries in the .NET framework are VERY comprehensive and by expanding on some of the existing libraries, you could easily write reusable code that you can implement in any number of applications (web or windows).
I read an article a while ago (for the life of me I can't seem to track it down again) in which they pitted 3 teams against one another: PHP, ASP.NET and J2EE. The goal was to recreate a virtual pet-store sample (apparently used in J2EE tutorials?) in the team's allocated platform. The results were surprising - the .NET team finished the task a week before the other 2 teams, with a more stable product that was able to handle much bigger data-loads than the other 2 platforms.
Another benefit of the .NET framework for me is the inclusion of CLR (Common Language Runtime) in MS SQL Server 2005, which effectively allows you to write .NET code and utilize the .NET libraries in your database stored procedures. The integration between the Microsoft platforms is just amazing and really ensures that you create a stable, fully-integrated solution that can be applied in just about any environment.
So, that's my little gospel of .NET. Hope you make an informed choice as to your future in software development...
Could you perhaps link me to that article, I'd look at the particulars
COBOL. It's used by all the banks.
Seriously though, the above comments are all valid (esp. the INTEC comment), except the points about VB.Net. I am fluent in both VB.Net and C#, and there are a lot of VB programs out there that have been ported to VB.Net, waiting to be rewritten in C#. I always get a nod of approval when an interviewer asks me which of the 2 languages I can write in, and my answer is "both".
That said, UNISA (I'm finishing my national certificate next year) experience tends towards C#. Good luck.
Hmm yes, let me put it this way if you can't use VB.NET and can use C# you're a noob but seriously, there are some things that seriously bother me about VB.NET, safety issues to be more specific, among them are implicit type casting, a big no-no in my opinion and the fact that the syntax is cumbersome. I can develop much faster in C# than VB.NET simply because I don't have to type out,
Dim var as Object = new Object(contructor)
VS.
Object var = new Object(constructor);
Might seem trivial but after typing out Sub and Function, As and ByVal so f#$%ing many times I feel like I want to throw the computer screen with a brick. And in VB.NET EVERY SINGLE LINE is a statement because there are no ; or anything.
It's like you have spell everything out, C# is way more compact, not to mention that I HATE not having the {} brackets, code just reads better with code blocks.
The only "feature" I like about VB.NET is instead of using break like C# you can use EXIT FOR/SUB/IF, etc. useful sometimes.
Which brings me to my biggest problem with .NET all round, in .NET 3 you can declare objects without type, IE.
Dim var = Datetime.Now;
I don't much like that style of programming, I know it's a personal thing but implicitly going between types, just don't like it
Java just feels safer, guess that's my point.

You're not serious!!?? I'm still fairly wet-behind-the-ears in C# Programming, and I've written fairly complex text editors and scripting tools.
Dude I'm not joking.