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 bool ContinueUpdateOnError {get; set;}
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 bool AcceptChangesDuringFill {get; set;}
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 virtual MissingMappingAction MissingMappingAction {get; set;}
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 DataTableMappingCollection TableMappings {get;}
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 abstract int Fill(
DataSet dataSet
);
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
DataSet 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.
Az objektumok a következő property-kkel rendelkeznek.

CommandText
Osztály: OleDbCommand
public virtual string CommandText {get; set;}
Ebben a property-ben fogalmazhatjuk meg az SQL utasítást, amennyiben az utasítás szöveges.

CommandTimeout
Osztály: OleDbCommand
public virtual int CommandTimeout {get; set;}
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 virtual CommandType CommandType {get; set;}
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 OleDbConnection Connection {get; set;}
Az adatbázis-kapcsolat felépítését lehetővé tevő objektum adható itt meg.

Parameters
Osztály: OleDbCommand
public OleDbParameterCollection Parameters {get;}
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 OleDbTransaction Transaction {get; set;}
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 virtual void Cancel();
Törölhető a parancsvégrehajtás.

ExecuteNonQuery
Osztály: OleDbCommand
public virtual int 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
public OleDbDataReader ExecuteReader();
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 virtual object 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;