views:

204

answers:

3
+3  A: 

SQLClient, OleDB, ODBC are the DBMS Drivers/ADO.NET implementations of different DMBSs (err, hope that makes sense). For example, SQLClient is the ADO.NET implementation for connecting to a SQL Server database. The choice between these drivers is just which database you want to use. For a beginner, I would suggest SQL Server as you probably already have some version of that installed.

ORM is Object-Relational-Mapping. This is a code-based implementation of an auto-mapping between your code-based models, and your database that stores it. If you don't want to manually touch the database for the time being as you are learning, this is a good option - it is something useful for pros and beginners alike, as it allows you to not worry about the underlying database implementation, or writing CRUD (create, read, update, delete) functionality yourself. Take a look at ActiveRecord for .net (http://www.castleproject.org/activerecord/index.html)

Luke Schafer
+1  A: 

If you are looking for an easy introduction to databases in C# you want to use LINQ and a data context.

Simply add a "Data Context" to your project. Double click the file to open the designer for the LINQ data context. Open the "Server Explorer" in visual studio (under View) and connect to your SQL Server. Using that you can drag and drop your tables onto the LINQ designer in visual studio.

Jump on google and have a look at using linq with a context to do work on your DB.

I'll jump in here with LINQ to say that it encourages you to write better database code, that doesn't pull the whole dataset out in one go and operate on it, you defer queries and you can benefit greatly from the functional infrastructure they've built upon it.

But this has a big learning curve, best way to do it is to try different kinds of code and see the ones that make sense to you.

Spence
+4  A: 

Quite the mix there ... first some explanations ...

1) SQL Client An SQL client is an application that connects to a SQL Database for the purpose of querying / managing / working with the data in an SQL Database. (any program accessing a database, phpAdmin, SQLite Administrator, etc...).

2) ORM is object-relational mapping. Its a way to convert different types of data when data types are incompatible. Think about a car class that incorporates four instances of a tire class. This type of structure doesn't translate well directly to the types available in database design and may be a reason to use ORM. (To relate the objects (car, tires, etc..) into the plain database types (integer, float, blob, etc..)

3) OLE (pronounced Olay) DB Is the Microsoft method (API) for connecting to Database using COM. OLE DB is part of the MDAC Stack (grouping of MS technologies working together in a framework for data access).

4) ODBC is Open Database Connectivity and its an alternate API for for Database Management Systems (DBMS). Where OLE DB is a COM (Component Object Model) way to integrate with databases, ODBC aim's to be language independent.

5) ADO.NET is a set of base classes (API) for use in the .NET languages to connect to and communicate with Databases.

I would suggest starting with ADO.net for your C# background, OLE is typically for older (VB classic) applications, There is a good beginner tutorial here http://www.csharp-station.com/Tutorials/AdoDotNet/Lesson01.aspx

Don't let all the terminology scare you off, once you jump in and start tinkering you will understand all of the answeres provided better...

Best of Luck in your coding!! :-)

Robert French
Why start in ADO.Net? LINQ is the new friendly framework. You will be 5 times more productive using Linq than ADO.Net trying to understand the manual optimistic concurrency in ADO.Net datasets. Not to mention if you are new to C# that learning Linq is a great application of functional programming side of C#
Spence
I figured that because LINQ is extending the languages themselves and abstracting away the details required to work with a database, it makes more sense for a learning developer to actually learn about the database and how to interact with it. Learning LINQ first will confuse a new developer as soon as they leave .net and take a look at the rest of the world. (Just MHO)
Robert French
Learn then productive. Or productive then learn?
Spence
Ready, Fire!, Aim when needed... Tinker and learn when possible.
Robert French