Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1001229
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T07:38:12+00:00 2026-05-16T07:38:12+00:00

Recently I had to type up some documentation on .net data providers and ado.net.

  • 0

Recently I had to type up some documentation on .net data providers and ado.net. I am trying to get feedback on my findings. Please review and provide corrections or opinions.

Summary
This is a high level summary of the basic .Net API’s for interacting with a database. As a developer with mainly a Java and PHP background I was unclear about how ADO.Net related to OleDb and I had no idea what was meant by the term “.Net Data Provider”. I created this because the msdn documentation is HEAVILY focused on ADO.Net and does not give a clear picture of how the many namespaces, interfaces, and classes interact.

.Net Data Provider

  • http://msdn.microsoft.com/en-us/library/a6cd7c08(v=VS.71).aspx
  • A .NET Framework data provider is
    used for connecting to a database,
    executing commands, and retrieving
    results. Those results are either
    processed directly, or placed in an
    ADO.NET DataSet.
  • What that actually means is that a
    .Net Data Provider implements the
    interfaces defined in the System.Data
    namespace.
  • A .Net Data Provider is similar to a
    JDBC driver in Java

System.Data

  • http://msdn.microsoft.com/en-us/library/system.data.aspx
    This page contains text that makes
    you believe that ADO.Net is the CORE
    part of .Net data access, however the
    reality is that ADO.Net is the
    highest level of data access and is
    built upon the .Net Data Providers
    that implement the interfaces in the
    System.Data.
  • In my opinion it almost seems like
    microsoft is trying to hide how
    database connections work, so that
    users are trapped using controls
    provided by visual studio. The
    System.Data namesapce contains
    Interfaces that need to be defined by
    ALL .Net Data Providers

System.Data Core Interfaces

  • IDbConnection
  • IDbCommand
  • IDataAdapter
  • IDataReader

Examples of System.Data Implementations

  • The following namespaces include classes
    that implement the core “.Net Data
    Provider” interfaces defined in
    System.Data
  • System.Data.SqlClient
  • System.Data.OleDb
  • System.Data.Odbc
  • IBM.Data.DB2
  • ByteFX.Data.MySqlClient

ADO.Net

  • http://msdn.microsoft.com/en-us/library/27y4ybxw(v=VS.71).aspx
  • ADO.Net is a database query and
    manipulation API built on top of the
    basic .Net Data Provider classes.
    ADO.Net focuses on disconnected,
    multi-tier database interaction.
  • In my opinion the core ADO.Net
    classes should be in a separate
    namespace like System.Data.ADO just
    for the sake of clarity.

ADO.Net Core Classes

  • DataSet
  • DataTable
  • DataColumn
  • DataRelation
  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T07:38:13+00:00Added an answer on May 16, 2026 at 7:38 am

    System.Data is the “package” that contains everything for working with “Data providers” in .NET. It is true that ADO, is one strategy for working with data, but it is the primary strategy in .NET.

    ADO is less about specific DB technologies (as it is not necessarily meant to be a database specific technology) and more about data relationships. The terms: Set, Table, Column, Row and Relationship are well understood modeling terms and ADO.NET makes them first class objects in the .NET space.

    Data providers provide low-level implementation specific details for supporting the core ADO.NET concepts (tables, rows, etc) and are meant to abstract away the direct implementation details of how to connect to a data provider. For instance, you should be able to, with relatively little effort, swap out a Jet Data provider, with a Oracle Data provider, in terms of DataTables, DataRows, and DataColumns (query details aside) such that your code is minimally impacted by the change. Why is this important? Because it means you can work with non-homogenous data sources with similar command semantics (i.e. you can work with excel spreadsheets and MySql dbs in the same app with the same objects). This makes reuse and repurposing very easy and very straight-forward.

    As a general view you can think of the system this way:

    1. The .NET Data provider is where you get your data from. You will need to import from System.Data each provider that your app uses
    2. The ADO.NET classes are the concepts you will be working with Tables, Rows, Columns, etc. These have nothing to do with queries, indexes, etc. Those are provider details
    3. Your app should only rarely (I would say never, but there are always exceptions) need to be aware of the Provider and instead focus on consuming and producing DataSets, DataTables, etc.

    Hope that helps.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I recently had my free application published in Mac Appstore. I'm trying to find
I recently had cause to look at the documentation for the -XX:MaxPermSize argument to
I recently had a discussion with a colleague about serialization of byte data over
I recently came across some weird looking class that had three constructors: class Class
I had this problem a long time ago and recently I got some clues
I recently had some problems with my VS 2008, and was recommended to reinstall.
I recently had to update one of my model's properties from type StringProperty to
Recently i had some performance problems in a SOAP webservice I wrote a while
I have recently implemented an MVC3 website and had to now include data from
I recently had some trouble with IE8 (I don't know about 9 at this

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.