Retrieving Data with a DbDataAdapter 

The DbProviderFactory lets you create provider-agnostic data adapters to work with data from any data source.

Fill a DataGrid by Using a DbDataAdapter

The CreateDataAdapter method of a DbProviderFactory object gives you a DbDataAdapter object that is strongly-typed to the underlying provider specified at the time you create the factory. The following code fragment creates a DbDataAdapter and fills a DataGrid control on an ASP.NET page. Although this example could easily have been written using strongly-typed objects directly, it demonstrates how you can use the data factory to retrieve the strongly-typed objects based on a provider name specified at runtime.

DbProviderFactory dataFactory = 
 DbProviderFactories.GetFactory("System.Data.SqlClient");
DbDataAdapter da = dataFactory.CreateDataAdapter();
da.SelectCommand = conn.CreateCommand();
da.SelectCommand.CommandText = 
  "SELECT SalesOrderID, OrderDate FROM SalesOrderHeader" 
  + " WHERE CustomerID=" + CustID.ToString();

// Fill the DataTable and bind the DataGrid
DataTable dt = new DataTable();
da.Fill(dt);
gridOrders.DataSource = dt;
gridOrders.DataBind();
Dim dataFactory As DbProviderFactory = _
 DbProviderFactories.GetFactory("System.Data.SqlClient")
Dim da As DbDataAdapter = dataFactory.CreateDataAdapter()
da.SelectCommand = conn.CreateCommand()
da.SelectCommand.CommandText = _
  "SELECT SalesOrderID, OrderDate FROM Sales.SalesOrderHeader" & _
  " WHERE CustomerID=" + CustID.ToString()

' Fill the DataTable and bind the DataGrid
Dim dt As New DataTable()
da.Fill(dt)
gridOrders.DataSource = dt
gridOrders.DataBind()

See Also

Concepts

Working with Factories
Provider Independent Model Overview
Obtaining the DbProviderFactory
Creating Commands and Retrieving Data