In 2 weeks I will be starting a new job as a software developer in a company that currently does not employ any professional programmers.  My first task will be to rewrite a Excel/VBA application in C#, with an SQL back end.  I am currently a C# developer but we don't use a database back end; previously I was a database administrator but I didn't program.  I have very little experience at joining up the two worlds.What are the options for modelling the database access in a C# desktop application with a SQL Server back end?  I would want to have some separation between the layers (database, logic, user interface).
How do I do SQL Server mapping with a new Desktop application written in C#?
c#;sql server;orm
What I think you want is domain driven design, In simple terms separation of concerns. Read about it and you are good to go. To keep it simple since you say yo new, Just have User Interface layer in its own project, a service / logic layer in its own project. a data access layer in its own project and other layers depending on the project. For the data access i would recommend you use Entity Framework to bind with your database (preferable database first option since you have db admin background). Now read and get familiar with Linq and Entity Framework and i think you are good to go. 