22 Haziran 2017 Perşembe
Twitter

DataAdapter kullanimi

Bu yazida, DataAdapter sinifini kullanarak veri isleme konusunu isleyecegiz.

DataAdapter sinifi, ADO.NET'te oldukça sik kullanilan çok güçlü bir siniftir. Çevrimdisi (offline, baglantisiz) baglanti saglar ve serverdan clienta (select), clienttan servera (update, delete, insert) komutlarini çok rahat ve toplu halde isletilmesini saglayan metotlara sahiptir. 

Biz DataAdapter sinifini, DataTable veya DataSetler ile beraber kullaniriz.

Bir DataAdapter nesnesi, mutlaka select sorgusu içermelidir. Select sorgusu ile ortaya çikan veri kümesi ise DataTable veya DataSet nesnelerine aktarilir.

DataTable veya DataSet üzerinde meydana getirilen degisiklikler, veritabanina etki yapmaz. Nedeni ise, veri kümesini çektikten sonra veritabani baglantisinin kapatilmasi ve bundan sonraki islemlerin çevrimdisi gerçeklestirilmesidir.

Yaptigimiz degisikliklerin veritabanina aktarilmasini istiyorsak, DataAdapter nesnesinin SelectCommand bilgisine bakarak, DeleteCommand, UpdateCommand ve InsertCommand bilgilerinin otomatik olarak olusturulmasini saglayan CommandBuilder'i kullanabiliriz.

data adapter 

ADO.NET siniflarini kullanabilmemiz için namespace'imizi tanimliyoruz.

// SQL e baglanti için gerekiyor
using System.Data.SqlClient; 

Veritabanindan verilerin çekilip Gridviewa aktarilmasina örnek:

// Connection String olusturuyoruz.
string sqlConn = "server=localhost; database=Veritabani; trusted_connection=true;";
// Connection nesnesini olusturuyoruz.
SqlConnection conn = new SqlConnection(sqlConn);

// SQL cümlecigi ile select ifadesini veriyoruz.
string cmdText = "select * from tabloadi where kosul order by Alanadi";
// Command nesnesini olusturuyoruz.
// 2 bilgiye ihtiyaç var. 1- SQL stringi, 2-Connection nesnesi
SqlCommand cmd = new SqlCommand(cmdText, conn);

// Command nesnesini kullanarak adaptörümüzü olusturuyoruz.
DataAdapter da = new DataAdapter(cmd);
// bilgi tasiyicisi olarak datatable veya dataset e ihtiyacimiz var
DataTable dt = new DataTable();

// bilgileri datatable adaptör araciligi ile aktariyoruz.
// adaptör, connection nesnemizi bizim yerimize açar ve kapatir.
da.Fill(dt);

// bu noktada artik veritabani baglantimiz kapatilmis durumda.
// veriyi gridviewa bagliyoruz.
Gridview1.DataSource = dt;
Gridview1.DataBind();

DataAdapter ün güçlü bir sinif oldugunu söylemistim. Istersek hiç connection ve command nesnelerini olusturmadan sadece connection string ve select sorgusu bilgilerini vererek de adaptörden bilgi çekebiliriz.

string sqlConn = "server=localhost; database=Veritabani; trusted_connection=true;";
string cmdText = "select * from tabloadi where kosul order by Alanadi";

// Connection ve command olusturmuyoruz.
// adaptörün kendisi bu nesneleri bizim yerimize olusturuyor.
DataAdapter da = new DataAdapter(cmdText, sqlConn);

DataTable dt = new DataTable();

da.Fill(dt);

Örnek uygulamamiz SQL Server üzerinde çalismaktadir.

Değerlendirme

Yazım dilinin sadeliği ve anlaşılabilirliği Puan: 4,51 (9 oy)
Yazıdaki kodların kalitesi Puan: 3,98 (9 oy)
İhtiyaca cevap verme Puan: 4,49 (10 oy)
Tavsiye edilebilirlik Puan: 4,48 (8 oy)
Genel değerlendirme Puan: 4,46 (7 oy)
Puanlamalar 5 üzerindendir.
  • Site Yorumları
  • Facebook Yorumları Facebook Yorumları
Yeni yorum yaz Toplam: 7, Onay bekleyen: 0.
  1. yunus emre

    teşekkürler... gerçekten çok iyi anlatım...

  2. melek nur

    çok başarısız data set ve table kulanımıyla ilgili hiç bir ornek yok göze çarpan

  3. Sümeyye Aydemir

    Bir kere okumam yetti.Ellerinize sağlık hocam.

  4. Kamile Kılıç

    ben de çok beğendim gerçekten çok açıklayıcı olmuş, anlayabilmek için epey bişeyler karıştırdım fakat bu makale en öğretici olanı. Teşekkür ederim...

  5. selen bakan

    Tek kelime ile harika anlatmışsınız onca yerden okudum anlamaya çalıştım bu kadar yaralı bilgiler bulamadım çok teşekkürler.saygılar.