Makale Özeti

Merhaba arkadaşlar bu makalemizde Microsoftun geliştirmiş olduğu Data Access Application Block üzerinde duracağız.

Makale

Giriş

.Net Framework, veritabanı ile çalışmak için yazılım geliştiricelere ADO.NET’i sundu. ADO.NET bize veriyi görüntülemek ve veri üzerinde işlemler yapmamızı sağlar. Veritabnındaki bazı bilgilere erişmek ve uygulama üzerinde bazı parametreleri kullanabileceğini göz önünde bulunduralım. Bu işlemi 6-7 satır kod yazarak kolayca yapabiliriz. Fakat, 5-6 satır kodu tekrar tekrar yazmak zorunda kaldığımızda bu işlemi yapmak kolay olmayacaktır.

Microsoft bunun için, Daha az kod ile ortak işleri yapmak için kullanılabilen Data Access Application Block’u geliştirdi. Data Access Application Block’u aşağıdaki adresten indirebilirsiniz. 

   
http://msdn2.microsoft.com/en-us/library/ms954827.aspx

Microsoft .net Data Access Application Block Nasıl Kullanılır ?

İlk olarak Data Access Application Block Version 2.0.(Daha eski/yeni versionda olabilir) indirip kuralım. Ilk olarak the Microsoft .net Data Access Application Block projesi için .dll dosyası oluşturacağız. Projeyi build ettikten sonra kendi projemize basitçe ekleyebiliriz. Kendi projemize ekledikten sonra bin klasörü içindeki .dll dosyasınıda build edelim.


Data Access Application Block olmadan Dataya Erişmek

İlk olarak Application olmadan veriye nasıl erişildiğine bakacağız. Aşağıda veritabanına 2 parametre ekleyen basit bir örnek yapacağız.

string connectionString = (string)
ConfigurationSettings.AppSettings["ConnectionString"];
SqlConnection connection = new SqlConnection(connectionString);
SqlCommand command = new SqlCommand("INSERT_MUSTERI",connection);
command.CommandType = CommandType.StoredProcedure;
command.Parameters.Add(new SqlParameter("@Name",SqlDbType.NVarChar,50));
command.Parameters["@Name"].Value = txtName.Text;
command.Parameters.Add(new SqlParameter("@Surname",SqlDbType.NVarChar,10));
command.Parameters["@Surname "].Value = txt Surname.Text;
connection.Open();
command.ExecuteNonQuery();
connection.Close();


Görüldüğü gibi veritabanına parametre eklemeye çalıştığımızda 6-7 satır kod ile işimizi tamamladık. Fakat 10 yada daha fazla parametre eklemeye çalıştığımızda geliştirme zamanı bir hayli uzayacaktı.

Şimdi aynı işlemi Microsoft .net Data Access Application Block kullanarak yapalım.

using Microsoft.ApplicationBlocks.Data;
SqlHelper.ExecuteNonQuery(connection,"INSERT_MUSTERI",new
SqlParameter("@Name",txtName.Text) ,new SqlParameter("@Surname",txt Surname.Text) );


Gördüğünüz gibi 5-6 satır kod yazmak yerine işimizi tek satırda tamamladık.

Bu işlemi SqlHelper classı ile yaptığımız gördük. Peki bu SqlHelper nereden çıktı?

Projemizin namespacelerine Microsoft.ApplicationBlocks.Data eklersek SqlHelper Classına erişebiliriz. SqlHelper Classı veritabanına erişmek için static metodlar içeren ve Microsoft tarafından geliştirilen bir classdır. Her hangi bir text editörü ile SqlHelper Classını açabilir ve inceleyebilirsiniz.

SqlHelper Class

SqlHelper’in içindeki static metodlar;

ExecuteNonQuery

ExecuteDataSet

ExecuteReader

ExecuteScalar

ExecuteXMLReader


Evet artık örneğimize geçebiliriz. İlk olarak bir Windows Application açalım.


Şimdi SqlHelper Classını projemize ekleyelim. (DLL olarak da ekleyebiliriz).



    

Şimdi projemizin namespacelerine ApplicationBlocks.Datayı ekleyelim.

using Microsoft.ApplicationBlocks.Data;

Ekledikten sonra formumuzun üzerine 1 adet buton ve bir gridview ekleyelim.


 

Evet Şimdi ExecuteDataseti çalıştıracak kodları yazalım.

                                                    string sqlstring = "Select * from Musteriler";

                                                    dataGridView1.DataSource = SqlHelpera.ExecuteDataset("Data Source=localhost; Initial Catalog=SemGoksuDB; trusted_connection=yes", CommandType.Text, sqlstring).Tables[0];

                 


   

Şimdi projeemizi çalıştıralım.

   



 

Projemizi çalıştırdıktan sonra kayıtlarımızı listeledik. Gördüğünüz gibi çok kolay bir şekilde 1-2 satır ile işimizi yaptık.

Bu makalenin de sonuna geldik, başka bir makalede görüşmek üzere başarı ve iyi günler dilerim.

Sem GÖKSU
MCP | MCAD.NET | MCTS

Örnek Kodlar için mail adresimi kullanabilirsiniz

semgoksu@semgoksu.com

Kaynaklar

http://msdn.microsoft.com