A mellékelt példában a korábban megismert Products nevű, Microsoft Access állományban található adattáblához kapcsolódunk, mely most csak néhány rekordot tartalmaz. A tábla adatain műveleteket fogunk végezni: lekérdezést, rekordtörlést, valamint adatmódosítást és adatbeszúrást.
A következőkben bemutatjuk, milyen jelentősebb property-jeit állíthatjuk be a DataAdapter osztálynak, valamint megismerhetjük metódusait. A DataAdapter osztály az OleDbDataAdapter osztály őse. A következőkben megadott property-k és metódusok a gyermekosztályban újabbakkal egészülnek ki.

ContinueUpdateOnError
Osztály: DataAdapter
Public Property ContinueUpdateOnError As Boolean
Megadhatjuk, hogy folytatódjon-e a művelet az adatsorok frissítésekor, ha valamely rekord módosítása hibát okoz. TRUE esetében nem generálódik kivétel.

AcceptChangesDuringFill
Osztály: DataAdapter
Public Property AcceptChangesDuringFill As Boolean
Megadható, hogy hívódjon-e meg az AcceptChanges metódus minden egyes rekordbeszúrás után, amikor a Fill metódust meghívjuk. Az AcceptChanges metódussal jelezhetjük, hogy a legutoljára beszúrt rekord már ne új rekordként szerepeljen a kollekcióban. Ennek fontosságáról a sorozat későbbi számaiban szólunk.

MissingMappingAction
Osztály: DataAdapter
Public Overridable Property MissingMappingAction As _
MissingMappingAction Implements _
IDataAdapter.MissingMappingAction
Megadható, hogy mi történjen akkor, ha a beszúrandó rekord szerkezete nem azonos a fogadó adattábla, vagy rekordkollekció szerkezetével. Háromféle értéket adhatunk meg:
- Error: az InvalidOperationException kivétel generálódik.
- Ignore: figyelmen kívül marad az adat, és nem kerül be az adathalmazba
- Passthrough: létrejön a megfelelő oszlop, vagy a megfelelő szerkezetű tábla, és a DataSet-hez adódik.

TableMappings
Osztály: DataAdapter
Public ReadOnly Property TableMappings As _
DataTableMappingCollection
A property segítségével megadható a kapcsolat a forrás adattábla és a DataTable objektum között.
Ezeken a property-ken kívül a gyermekosztályban megtalálhatók még a következők:
- DeleteCommand
- InsertCommand
- SelectCommand
- UpdateCommand
A property-k mindegyike OleDbCommand típusú, melyek segítségével elvégezhetjük a különböző adatmanipulációs műveleteket az adatforráson.
Az OleDbDataAdapter osztályban a leggyakrabban használt metódus a következő:

Fill
Osztály: DataAdapter
Public MustOverride Function Fill( _
ByVal dataSet As DataSet _
) As Integer Implements IDataAdapter.Fill
Az osztály SelectCommand property-jén keresztül elérhető objektum által elvégzett lekérdezés eredményadatai bekerülnek a paraméterben megadott memóriabeli tárolóba.
Paraméterek
ByVal dataSet As DataSet
A memóriabeli adathalmaz, melybe a lekérdezés műveletének eredménye kerül.
Visszatérési érték
Az adathalmazba sikeresen beszúrt rekordok száma.

CommandText
Osztály: OleDbCommand
Public Overridable Property CommandText As String Implements _
IDbCommand.CommandText
Ebben a property-ben fogalmazhatjuk meg az SQL utasítást, amennyiben az utasítás szöveges.

CommandTimeout
Osztály: OleDbCommand
Public Overridable Property CommandTimeout As Integer Implements _
IDbCommand.CommandTimeout
A megadott SQL utasítás végrehajtásának türelmi ideje, ha az nem hajtódik végre azonnal. Az alapértelmezett érték 30 másodperc.

CommandType
Osztály: OleDbCommand
Public Overridable Property CommandType As CommandType Implements _
IDbCommand.CommandType
A végrehajtandó utasítás típusa. Értékei lehetnek: Text (szöveg), StoredProcedure (tárolt eljárás).

Connection
Osztály: OleDbCommand
Public Property Connection As OleDbConnection
Az adatbázis-kapcsolat felépítését lehetővé tevő objektum adható itt meg.

Parameters
Osztály: OleDbCommand
Public ReadOnly Property Parameters As OleDbParameterCollection
Amennyiben az utasítás típusát tárolt eljárásra választjuk, akkor itt adhatjuk meg a paramétereket.

Transaction
Osztály: OleDbCommand
Public Property Transaction As OleDbTransaction
A kapcsolaton belüli tranzakciós objektumot hozhatjuk létre.
Az egyes parancstípusok esetében a leggyakrabban használható metódusok a következők:

Cancel
Osztály: OleDbCommand
Public Overridable Sub Cancel() Implements IDbCommand.Cancel
Törölhető a parancsvégrehajtás.

ExecuteNonQuery
Osztály: OleDbCommand
Public Overridable Function ExecuteNonQuery() As Integer Implements _
IDbCommand.ExecuteNonQuery
Végrehajtható a nem lekérdezés természetű utasítás.
Visszatérési érték
A sorok száma, melyeket a végrehajtás érint.

ExecuteReader
Osztály: OleDbCommand
Overloads Public Function ExecuteReader() As OleDbDataReader
A lekérdezés természetű utasítások hajthatók végre a metódussal, melynek eredményére közvetlenül vagyunk kíváncsiak.
Visszatérési érték
Eredménye egy OleDbDataReader objektum, melyben az adatok megtalálhatóak.

ExecuteScalar
Osztály: OleDbCommand
Public Overridable Function ExecuteScalar() As Object Implements _
IDbCommand.ExecuteScalar
Olyan lekérdezések végezhetők el, melyek egy eredményt adnak vissza.
Visszatérési érték
A lekérdezett érték objektuma.
Látható tehát, hogy a .NET ezen egy objektum esetében is szerteágazóan, és jelentősen segíti az adatbázissal kapcsolatos műveletek elvégzését. Az OleDbDataAdapter osztályról összességében elmondható, hogy mintegy hidat képez a fizikai adathalmaz, és a memóriabeli adattároló adatstruktúrák, és így kvázi a megjelenítés között.
A mellékelt példában egyszerű műveleteket végzünk el, melyek a lényegre koncentrálnak, vagyis arra, hogy a felhasználói felületen végzett műveletek eredménye látható legyen a fizikai adatforrásban is.
Adatmódosítás
Az alkalmazás TabControl-jának első füle alatt módosíthatjuk a ComboBox listában kiválasztott azonosítóval rendelkező rekordokat.
A rekord két másik mezőt tartalmaz, melyeket módosíthatunk úgy, hogy új értékeket adunk meg a szövegmezőkben. Amennyiben nem adunk meg semmit, az adott érték nem módosul. A módosításkor az UpdateCommand objektumot kell használnunk, melynek CommandText property-jét kell megfelelően megadnunk. Az UPDATE SQL utasítás megadása után az ExecuteNonQuery metódust kell meghívnunk.
oleDbConnection1.Open()
oleDbDataAdapter1.UpdateCommand.ExecuteNonQuery()
oleDbConnection1.Close()
A művelet után frissítjük a harmadik fül alatti táblázatot, mely a tábla adatait tartalmazza.
dt.Rows.Clear()
oleDbDataAdapter1.Fill(dt)
dataGrid1.DataSource = dt.DefaultView
Adatok törlése
Az adott rekord törlésekor a DeleteCommand objektumot kell használnunk.
oleDbDataAdapter1.DeleteCommand.CommandText = "DELETE FROM PRODUCTS WHERE ProductID = " + comboBox1.Text
A törlés után természetesen frissítjük a ComboBox tartalmát is.
Adatbeszúrás
A Form TabControl-jának második füle alatt új rekordot szúrhatunk be a táblázatba. Ennek módja, hogy az InsertCommand objektum CommandText property-jében megadjuk az INSERT utasítást, majd meghívjuk az ExecuteNonQuery metódust.
oleDbDataAdapter1.InsertCommand.CommandText = "INSERT INTO PRODUCTS VALUES (" + textBox5.Text + ",'" + textBox4.Text + "'," + textBox3.Text + ")"
...
oleDbConnection1.Open()
oleDbDataAdapter1.InsertCommand.ExecuteNonQuery()
oleDbConnection1.Close()
Majd a frissítés következik, hogy a megjelenített adatok is fedjék a valóságot.
dt.Rows.Clear()
oleDbDataAdapter1.Fill(dt)
dataGrid1.DataSource = dt.DefaultView