Tweet

ADO.NET & C#

Merhaba arkadaşlar bu yazımızda ado.net teknolojisinden bahsedeceğiz..

Ben konuyu daha çok bir örnek üzerinden anlatma taraftarıyım..O halde başlayalım..

Öncelikle kısaca konuyu anlamanız açısından ilk defa duyanlar için ado.net kavramını açıklayalım ve daha sonra konumuza devam edelim.[...]

Ado.net microsoft tarafından geliştirilmiş olunan bir veritabanı kullanım teknolojisi olarak ifade edilebilir.Karıştırılmaması gereken nokta ise önceden varolan ADO kavramı ile alakasının olmamasıdır..ADO.NET in en büyük özelliği alışılagelmiş olunan şu mantıktı;

veritabanınız var ve siz bu veritabanından birşeyler sorgulamak istiyorsunuz bunun için bağlantı kuruyorsunuz,ADO.NET de ise bağlantısız veritabanı teknolojisi çok büyük kolaylıklar sağlıyor geliştiricilere.Dolayısıyla veritabanı gereksiz yere meşgul edilmiyor ve performans büyük ölçüde artırılıyor.Ayrıca xml verilerini çok rahat bir şekilde kullanmamızada imkan tanıyor ve dahası..

Bu kısa açıklamadan sonra konumuza devam edelim..

Resimdeki şekilde bir form oluşturabilirsiniz öncelikle..
[IMG SRC="http://img38.imageshack.us/img38/8737/111qig.jpg" ALIGN="CENTER"]http://img38.imageshack.us/img38/8737/111qig.jpg[/IMG]

Öncelikle veritabanına bağlanmak için connection_string oluşturuyoruz..

CODE:
public static string connectionString = " provider=Microsoft.JET.OLEDB.4.0; +" data source="+Application.StartupPath+"adodb.mdb";


bu kısımda dikkat edilmesi gereken veritabanınızın bulunduğu dizin ile beraber tanımlamanız..

C:adodb.mdb gibi..

Şimdi OleDataAdapter Nesnesini oluşturuyoruz..

CODE:
string commandstring = "select * from TelefonNumarasi";
dataAdapter = new OleDbDataAdapter(commandstring,connectionString);


INSERT COMMAND

CODE:
dataAdapter.InsertCommand=connection.CreateCommand();
dataAdapter.InsertCommand.CommandText=
"insert into TelefonNumarasi"+
"(Telefonnum,Isim)"+
"values"+
"(?,?)";

dataAdapter.InsertCommand.Parameters.Add("Telefonnum",OleDbType.Chart,0,"Telefonnum");
dataAdapter.InsertCommand.Parameters.Add("Isim",OleDbType.Char,0,"Isim");

Burada belirtmek istediğim şey şu ;

dataAdapter içerisinde tanımladığımız Telefonnum ve Isim parametreleri veritabanımızdaki TelefonNumarasi tablosundaki iki column'u ifade etmektedir..Sizde farklılık gösterebilir..

Güncellemek için kullanacağımız komut dizisi şu şekildedir..

CODE:
// Güncelleme yapmak için kullanılan komutlarımız.
dataAdapter.UpdateCommand=connection.CreateCommand();
dataAdapter.UpdateCommand.CommandText="update TelefonNumarasi"+
"set Isim =?"+
"where Telefonnum=?";
dataAdapter.UpdateCommand.Parameters.Add("Isim",OleDbType.Char,0,"Isim");
dataAdapter.UpdateCommand.Parameters.Add("Telefonnum",OleDbType.Char,0,"Telefonnum");

CODE:
// Silmek için kullanılan komutlarımız
dataAdapter.Deleteommand=connection.CreateCommand();
dataAdapter.DeleteCommand.CommandText=
"delete from TelefonNumarasi where Isim =?";
dataAdapter.DeleteCommand.Parameters.Add("Telefonnum",OleDbType.Char,0,"Telefonnum");

Data Set Sınıfımız

CODE:
dataSet=new DataSet();
dataSet.CaseSensitive=true;
dataAdapter.Fill(dataSet,"Telefonnum");
Fill_lb();

Fil_lb Methodu

CODE:
dataTable = dataSet.Tables[0];
listBox1.Items.Clear();

foreach (DataRow dataRow in dataTable.Rowa)
{

LoadBuffers(dataRow);
listBox1.Items.Add(Telefonnum+"tt"+Isim);
}

Düzeltme işlemi yapmayı gösterelim..

CODE:
// Satır seçiyoruz
DataRow selectedRow = dataTable.Rows[listBox1.SelectedIndex];

// kullanıcı bilgisi
Application.DoEvents();

// Satırda düzeltme işlemi yapıyoruz
selectedRow.BeginEdit();
selectedRow["Isim"] = txtIsim.Text.Trim();
selectedRow.EndEdit();

// Değiştirilmiş her satırı alıyoruz
DataSet dsChanges =
dataSet.GetChanges(DataRowState.Modified);

// Hatalarla beraber aynen değiştiriliyor..
bool okayFlag = true;
if (dsChanges.HasErrors)
{...}

//Hata yoktur mesajı
if (okayFlag)
{
// Veritabanı güncelleniyor
dataAdapter.Update(dsChanges,\\\\"TelefonNumarasi\\\\");
// Kullanıcıya bildiriyoruz bunu..
MessageBox.Show("Updated " + selectedRow["Telefonnum"]);
Application.DoEvents();
//Düzeltme yapıldı listboxu yeniliyoruz..
dataSet.AcceptChanges();
Fill_lb();
}
else // Hata varsa değişiklikleri iptal ediyoruz..
dataSet.RejectChanges();

Silme İşlemi

CODE:
//Liste olarak seçilen satır getiriliyor..
DataRow selectedRow = dataTable.Rows[listBox1.SelectedIndex];
string msg = selectedRow["Telefonnum"] +" deleted.";

//Seçilen satır siliniyor
selectedRow.Delete();

// Veritabanından Siliniyor
try
{
dataAdapter.Update(dataSet,"Telefonnum");
dataSet.AcceptChanges();
//Listboxu yeniliyoruz..
Fill_lb();
// Kullanıcıya bildiriyoruz..
MessageBox.Show(msg);
Application.DoEvents();
}
catch (OleDbException ex)
{
dataSet.RejectChanges();
MessageBox.Show(ex.Message);
}




thecoders.net | Oguzz


Oguzz
oguz@thecoders.net
14 Aralik 2008 18:27

İlgili Olabilecek Makaleler


Yorumlar (1)





srhn
18 Mayis 2010 18:02
çok yararlı bir bilgi... emeğinize sağlık...

Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg