.Net İle Veritabanına Bağlanma

Yazdığınız makaleleri ve üyelerimizin işine yarayacağını düşündüğünüz kodlarınızı gönderebilirsiniz. Bu foruma soru sormayın!
Cevapla
Kullanıcı avatarı
Fatih!
Kıdemli Üye
Mesajlar: 1172
Kayıt: 26 Kas 2004 10:46
Konum: Malatya
İletişim:

.Net İle Veritabanına Bağlanma

Mesaj gönderen Fatih! »

Veritabanına bağlanmak için bir çok yol mevcut olmakla beraber hepsi bir birine benzer. Bunların hepsini zamanla göreceğiz inşallah. Başlangıç olarak Access ve SQL Server Veritabanına Bağlanacağız.
Veritabanından çektiğimiz Verileri Sayfada gösterebilmek için webformunuza bir DataGrid Nesnesi ekleyin. Bu nesne bildiğimiz dbgridin Net versiyonudur.
Bunun için 3 nesne daha kullanacağız. Bu nesneleri Çalışma Zamanında Oluşturacağız.
Bu işleme Geçmeden Önce Uses satırına SQL Server Hariç Bir Veritabanına Bağlanmak istiyorsanız “System.Data” Ve “System.Data.OleDb” Unit isimlerini eklemelisiniz. SQL Server Veritabanına Bağlanacaksanız “System.Data.OleDb” yerine “System.Data.SqlClient” unit ismini yazın.
Öncelikle accessa bağlanalım. Bunun için OleDbDataAdapter, OleDbConnection ve Dataset Bileşenleri Kullanıyoruz. Bu Bileşenlerin hepsini Çalışma Zamanında oluşturup kullanacağız. Ben Kullanacağımız OldbDataAdapter ve OleDbConnection Bileşenini Delphinin Component Paletinde göremiyorum acak daha öncede dediğim gibi .Net, .Net Framework kütüphanelerini kullanır. Sanırım Borland eklemeyi unutmuş :)
OleDb harfleriyle Başlayan bileşenler MS SQL Server dışındaki bütün veritabanlarına ulaşmak için oluşturulmuş bileşenlerdir. MS SQL Server içinse SQL harfleriyle başlayan bileşenler oluşturulmuştur. Ayrıca dikkat ettiyseniz Veritabanlarına Bağlanmak için Delphiye has Bağlantı Bileşenleri de Bulunmaktadır. Genellikle Bütün Bağlantı Tipleri Bir Birine benzer. Bu sebeple diğerlerini öğrenirken pek zorlanacağımızı sanmıyorum. Bugün Kabaca Veritabanına Bağlandıktan sonra ilerleyen günlerde Her bileşeni Mümkün Olduğu kadar detayına inerek inceleyeceğiz..
Yukarıda anlattığım işlemleri yaptıktan sonra bir buttonun OnClick olayına veya benim yaptığım gibi sayfanın “Page_Load” olayına yazın.

Kod: Tümünü seç

procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
var
MyConnect:oleDbConnection;
MyAdapter:oleDbDataAdapter;
MyDataset:DataSet;
begin
//Bağlantıyı oluştur
MyConnect:=oleDbConnection.Create;
MyConnect.ConnectionString:='Provider=microsoft.Jet.OLEDB.4.0;'+'data source='+Server.MapPath('/MyProc/Data.mdb');
//Tabloya bağlan
MyAdapter:=oleDbDataAdapter.Create('Select * From TBL_LISTE',MyConnect);
//Seçilen Tabloyu DataSete Aktar
MyDataset:=Dataset.Create;
MyAdapter.Fill(MyDataset,'TBL_LISTE');
DataGrid1.DataSource:=MyDataset.Tables['TBL_LISTE'];
DataGrid1.DataBind;
end;
Şimdi kodları analiz edelim.
Öncelikle oluşturacağımız Bileşenler için 3 değişken tanımlıyoruz. Procedure’nin ilk kodunda bir OledbConnection bileşeni oluşturuyoruz. Bu bileşenin yaptığı görev ADOConnection ile aynıdır.Firebirdçüler için örnek vermek gerekirse IBDataBase görevini görmektedir. Sonrasında bağlantıyı oluşturacak kodu yazıyoruz. Burada yabancısı olduğunuz kod

Kod: Tümünü seç

Server.MapPath();
komutudur. Bu komutun anlamını da Delphi diliyle

Kod: Tümünü seç

 ExtactFilePath 
komutuyla eş değerdir. Yani burada yaptığı Veritabanının bulunduğu tam yolu çıkarmaktır. Bu bileşenin ConnectionString özelliğine Create komutu verirken de atama yapabilirsiniz. Nereye atama yaptığınızı bilmeniz açısından Bu şekilde kullandım. Yani kodu şu şekilde kısaltabilirdik.

Kod: Tümünü seç

MyConnect:=oleDbConnection.Create('Provider=microsoft.Jet.OLEDB.4.0;'+'data source='+Server.MapPath('/MyProc/Data.mdb'));
Daha sonra OledbDataAdapter oluşturup veritabanından istediğimiz tablodan verileri çekecek SQL cümlesini yazıyoruz ve daha sonra ikinci parametrede veritabanına bağlantıyı sağlayan OleDbConnection nesnesini gösteriyoruz. OleDbDataAdapteri Bir Nevi bildiğimiz Query bileşeni ile eş değerdedir.
Bu koddan sonra DataSet nesnemizi oluşturuyoruz. Dataset nesnesinin anlatımı çok uzun sürer bu sebeble kısaca özetleyip ileriki makalelerde ayrıntısıyla inceleyeceğiz.
DataSeti Bir Query+DataSorurce+Transaction Bileşenlerinin özelliklerini kapsayan bir nesne olarak düşünebilirsiniz. OleDbDataAdapterin seçtiği tabloyu DataSete aktarabilir Bunun tam tersi işlemide yapabilirsiniz.

Kod: Tümünü seç

MyAdapter.Fill(MyDataset,'TBL_LISTE');
Bu kodla OleDbDataAdapterde bulunan verileri Datasete aktarıyoruz. Daha sonra Gridimizin Datasourcesini göstererek DataBind Komutuyla kayıtları gride dolduruyoruz.
Yukarıdaki kodlarda değiştirmeniz gereken

Kod: Tümünü seç

TBL_LISTE 
Yerine kendi tablo isminizi,

Kod: Tümünü seç

 Server.MapPath('/MyProc/Data.mdb') 
yerine kendi proje yolunu ve dosyanızı yazın.

Şimdide MS SQL Server a bağlanalım. Aralarında pek fark yoktur diyebilirim. Yukarıda belirttiğim unit adını ekleyip OleDb harfleri yerine Sql yazılması dışında tek fark ConnectionString özelliğine yapılan atamadadır.

Kod: Tümünü seç

procedure TWebForm1.Page_Load(sender: System.Object; e: System.EventArgs);
var
MyConnect:SqlConnection;
MyAdapter:SqlDataAdapter;
MyDataset:DataSet;
begin
//Bağlantıyı oluştur
MyConnect:=sQLConnection.Create('Server=localhost;Database=Fatih;uid=sa;pwd=;');
//Tabloya bağlan
MyAdapter:=SQLDataAdapter.Create('Select * From TBL_LISTE',MyConnect);
//Seçilen Tabloyu DataSete Aktar
MyDataset:=Dataset.Create; 
MyAdapter.Fill(MyDataset,'TBL_LISTE');
DataGrid1.DataSource:=MyDataset.Tables['TBL_LISTE'];
DataGrid1.DataBind;
end;
Fatih yerine kendi veritabanınızı, uid yanında bulunan sa yerine kendi kullanıcı adınızı, pwd yanına ise varsa şifrenizi yazın.

Konuyla ilgisi olmayıp merak ettiğinizi düşündüğüm bir not düşmek istiyorum.
Bir sayfadan diğer sayfaya geçiş yapmak isterseniz aşağıdaki komutunu kullanmalısınız.

Kod: Tümünü seç

ReSponse.ReDirect(‘BenimSayfa.aspx’);
Cevapla