Mi sembra impegnativo come "primo progetto", in ogni caso provo a darti qualche dritta.

Database: SQL Server è senz'altro quello più integrato con Visual Studio, ma non è ovviamente obbligatorio e puoi orientarti anche verso altri db.

Linguaggio: se conosci C++ non avrai difficoltà con C#, secondo me però la cosa più impegnativa sarà quella di conoscere abbastanza bene il framework .NET, che è molto ampio.

Visto il trend attuale, credo sarebbe "furbo" scrivere un'applicazione suddivisa in "layer", almeno tre e cioè:
  • data layer
  • business layer
  • user interface

Se questi layer sono ben scritti e sufficientemente isolati gli uni dagli altri, sarà abbastanza semplice progettare interfacce utente di vari tipi (Windows Forms, WPF, Silverlight, ASP.NET, ecc) senza dover riscrivere tutta la logica business.

Nella mia esperienza personale sto trovando molto utile lo strumento "LINQ to SQL Classes", che evita di scrivere un sacco di codice per quanto riguarda l'interfacciamento con il database. Trasforma automaticamente le tabelle e i campi in altrettanti oggetti e membri. In pratica aggiungi lo strumento, apri una connessione al database e trascini dentro le varie tabelle, punto. Ti ritrovi il data layer praticamente finito. La sintassi di LINQ permette di gestire i dati alla stregua di collection, senza alcun bisogno di definire query SQL.