Veritabanı İşlemleri
ADO.NET.Net tabanlı uygulamalar için birincil veriye ulaşım modeli. ADO nun sonraki versiyonu İki kısma ayrılabilir Provider (sağlayıcı) objeleri DataSet objeleri System.Data namespace System.Data.xxx namespace
ADO.NET - Providers Veri kaynağına bağlantı ve ulaşımı sağlarlar. Her veri kaynağının kendisi için yazılmış provider objeleri vardır. Genel olarak provider lar Connection Command Parameter DataAdapter DataReader olarak sayılabilir.
ADO.NET - Connection Veri kaynağına ulaşmak için kullanılacak bağlantıyı sağlar. Belirli tipleri OdbcConnection OleDbConnection SqlConnection OracleConnection Db2Conneciton
ADO.NET - OleDbConnection Object Linking and Embedding Database OleDb herhangi bir veri kaynağına herhangi bir ortamdan ulaşmayı hedefleyen bir teknoloji Veri kaynağı değişse bile aynı araçları kullanarak veriye erişim Odbc(Open Data Base Connectivity) vs OleDb System.Data.Oledb
ADO.NET - OleDbConnection Sık kullanılan değişken ve fonksiyonları ConnectionString ConnectionTimeout BeginTransaction() Close() CreateCommand() Open()
ADO.NET - OleDbConnection Programa oledb bağlantısı eklemek için Toolbox tan OleDbConnection nesnesi sürükle-bırak yöntemi ile formun üzerine konulur.
ADO.NET - OleDbConnection ağlantını özelliklerini ayarlamak için ekranın altındaki ağlantı nesnesine sağ tuşla tıklayıp, açılan menüden roperties sekmesini seçilmelidir. çılan pencereden bağlantının ismini değiştirdikten sonra onnection String özelliğine tıklayarak, nesnenin bağlantı zelliklerinin ayarlandığı pencere açılmalıdır.
ADO.NET - OleDbConnection Açılan pencerenin ilk tabından bağlanılacak Veri kaynağının tipi seçilir. DB2 veritabanına bağlanmak için Microsfot Jet 4.0 OLE Db Provider seçeneği seçilmelidir. Not: Bu işlem Server Explorer da bağlantı tanımlama İşlemi ile hemen hemen aynıdır.
ADO.NET - OleDbConnection
ADO.NET - OleDbConnection
ADO.NET - Command Veri kaynağına üzerinde okuma, yazma, güncelleme, silme gibi işlemleri yapmayı sağlar. Belirli tipleri OdbcCommand OleDbCommand SqlCommand OracleCommand Db2Command
ADO.NET - OleDbCommand OleDb teknolojisini kullanır. Sık kullanılan değişken ve fonksiyonları CommandText Connection Parameters Transaction ExecuteNonQuery() ExecuteReader()
ADO.NET - OleDbCommand Yapıcıları OleDbCommand() OleDbCommand(string commandtext) OleDbCommand(string commandtext, OleDbConnection myoledbconnection) OleDbCommand(string commandtext, OleDbConnection myoledbconnection, OleDbTransaction myoledbtransaction)
ADO.NET - OleDbCommand Nesneni n tipi Kulanacağı bağlantı Nesneni n Adı Çalıştıracağı komut
ADO.NET - Parametre Command nesnesine tek bir parametre bilgisi sağlar. Kulanım metodu Parametre eklenecek yerileri özel bir karakterle ayrılmış bir command nesnesi oluştur. Parametreleri daha önceden belirlenmiş değerlerle doldur. Komutu çalıştır.
ADO.NET Parametre Örnek Parametr e Ekle Parametrenin Tipi Parametrenin Boyutu Parametreye Değer Atama
ADO.NET DataReader Büyük veri yığınları üzerinde herhangi kayıt yapmadan efektif bir şekilde çalışmayı sağlar. Belirli tipleri OdbcDataReader OleDbDataReader SqlDataReader OracleDataReader Db2DataReader
ADO.NET - OleDbDataReader Yapıcısı yerine command nesnesinin ExecuteReader() fonksiyonundan dönen nesneyi kullanır. OleDbDataReader ordr = ocmd.executereader(); Read() fonksiyonu çağrılarak okumaya başlar veya sonraki kayıta geçer. if(ordr.read()) While(ordr.Read()) Reader nesnesinin indexli elemanları veya Get fonksiyonları ile veriye ulaşılır. ordr[0].tostring(); ordr[ KolonAdı ].ToString() ordr.getstring(0);
ADO.NET - OleDbDataReader Eğer bağlantı sonradan kullanılmaya devam edecekse Close() fonksiyonu ile reader nesnesi kapatılmalıdır. ordr.close() Sık kullanılan değişken ve fonksiyonları IsClosed FieldCount GetInt32(), GetDecimal(), GetString()... IsDBNull() Read() Close
OleDbDataReader Örnek Komut Nesnesi OleDbDataReader Nesnesi Eğer veri varsa Reader Nesnesine Veri Çek Kolon numarasına göre veri çekilmesi
OleDbDataReader Örnek Komut Nesnesi OleDbDataReader Nesnesi Eğer veri varsa Reader Nesnesine Veri Çek Kolon adına göre veri çekilmesi
ADO.NET - OleDbDataAdapter DataSet objesi ile veri kaynağı arasında veri iletimi için köprü vazifesi görür. Yapıcıları SqlDataAdapter() SqlDataAdapter(SqlCommand mysqlcommand) SqlDataAdapter(string selectcommandstring, SqlConnection mysqlconnection) SqlDataAdapter(string selectcommandstring, string connectionstring)
ADO.NET - OleDbDataAdapter Sık kullanılan değişken ve fonksiyonları Fill() Update() Uyarı : SqlDataAdapter nesnesini SqlDataAdapter(string selectcommandstring, string connectionstring) metodu ile oluşturmak yerine var olan bir bağlantı nesnesini kullanmak perform arttırır.
ADO.NET - OleDbDataAdapter AdataAdapte r Nesnesini Oluştur Dataset Nesnesini Oluştur Verileri Dataset Nesnesine Aktar Bağlantı Nesnesini Ekle
ADO.NET DataSet Objeleri Dataset objeleri hafızada basit bir ilişkisel veritabanı tanımlamaya yarayan sınıflardır. DataAdapter nesnesini kullanarak veriye ve veritabanın şemasına olaşır. DataSet sınıfları DataSet DataTable DataColumn DataRow
ADO.NET DataSet Objeleri DataSet objeleri hiyerarşik olarak yapılandırılmıştır.
ADO.NET DataSet Sınıfı Dataset sınıfı bütün veritabanını temsil eder. Tabloları ve tablolar arasındaki bağlantıları içerir. DataAdapter sınıfının Fill() fonksiyonu ile içerisi doldurulur. Sık kullanılan fonksiyon ve özellikleri Tables AcceptChanges() Clear()
ADO.NET DataSet Sınıfı Yapıcıları DataSet() DataSet(string datasetnamestring) Örnek DataSet mydataset = new DataSet(); DataSet mydataset = new DataSet("myDataSet"); DataSet Tipi Nesnenin Adı Yeni bir Nesne Oluştur Tablonun Adı
ADO.NET DataTable Sınıfı DataSet nesnesinin içerisinde bulunur. Adı, satırları ve sütunları vardır. Genellikle yapıcısı ile oluşturulmak yerine DataSet nesnesinde ulaşılarak kullanılır. Bir DataSet nesnesinin içerisinde birden fazla DataTable sınıfı bulunabilir.
ADO.NET DataColumn ve DataRow DataColumn veritabanı tablosundaki bir kolonu temsil eder. Kolon ile ilgili olarak ad ve tip verisi tutar. DataRow veritabanı tablosundaki satırı temsil eder. Verileri taşımanın yanında güncelleme, silme ve ekleme işlemlerinde de kullanılır.
ADO.NET DataColumn ve DataRow Dataset Nesnesi Komut Nesnesi Dataset Nesnesine Veri Çek DataAdapte r Nesnesi Dataset Nesnesinin İlk Tablosunun Satırları İlk satırdan kolon numarasına göre veri çekilmesi
Where anahtar kelimesi Hedef veri kümesini filtrelemek için kullanılır. Belirli satırları eler, diğerlerini geçirir. Where konutu olmadan bütün satırlar çekilir. Kolonlar üzerinde çalışır. Veri tipine göre yazılmalıdır.
Örnek SELECT * FROM PERSONEL WHERE ADI = ALİ Bu sorgu personel tablosundan adı ALİ olan tüm kayıtları getirir. Where anahtar kelimesi tablo adından sonra gelmelidir. Daha sonra filtreleme kriterleri gelmelidir. SELECT * FROM PERSONEL WHERE ADI LIKE AL% Bu sorgu personel tablosundan adı AL ile başlayan tüm kayıtları getirir. LIKE anahtar kelimesi benzer kayıtları getirir. SELECT * FROM PERSONEL WHERE ADI = ALİ AND SOYADI = KAYA Where anahtar kelimesi birden fazla filtreleme kriterini aynı anda içerebilir Bu örnekte tablodan hem adı ALİ soyadı KAYA olan kayıtlar döner.
Delete anahtar kelimesi Kayıtların tablodan silinmesi için kullanılır. Genellikle Where anahtar kelimesi ile beraber kullanılır. Transaction nesnesi ile beraber kullanılmadığında geri dönüşü olmadığından dikkatle kullanılmalıdır. Komut nesnesinin içerisine yazılarak ExecuteNonQuery fonksiyonu çağrılarak çalıştırılır.
Örnek DELETE FROM PERSONEL Bu komut personel tablosundaki tüm kayıtları siler. DELETE FROM PERSONEL WHERE YAS < 18 Bu sorgu personel tablosundan yaşı 18 den küçük olan tüm kayıtları siler. DELETE FROM PERSONEL WHERE ADI LİKE AL% Bu sorgu personel tablosundan adı AL ile başlayan tüm kayıtları siler.
Update anahtar kelimesi Tablodaki verileri değiştirmek/güncellemek için kullanılır. Delete->Insert yönteminden daha efektiftir. Genellikle Where anahtar kelimesi ile beraber kullanılır. Güncellenecek kolon isimleri ve değerleri verilmelidir Komut nesnesinin içerisine yazılarak ExecuteNonQuery fonksiyonu çağrılarak çalıştırılır.
Örnek UPDATE PERSONEL SET ADI = ALİ Personel tablosundaki tüm kayıtların ad alanlarına ALİ yazar. UPDATE PERSONEL SET YAS = 18 WHERE YAS < 18 Personel tablosundan yaşı 18 den küçük olan tüm kayıtları 18 yaşına getirir.
İki tablodan beraber veri çekmek İki tablonun kolonlarını birleştirerek tek satırda veri getirir. Tabloların genellikle birer kolonlarının eşleştirilmesiyle gerçekleştirilir. Benzer kolon isimlerinde tablolara kod adı verilerek ilgili kolonlar işaretlenebilir.
Örnek TCID 11111 22222 KIMLIK AD SOYAD ALİ KAYA VELİ TAN DERSLER DRSKOD DERSAD 5 FİZİK 6 KİMYA TCID 11111 11111 NOTLAR DERS KOD 5 6 NOT 50 70
Örnek Kimlik tablosunda öğrencinin TC Kimlik numarası, adı ve soyadı Dersler tablosunda derslerin kodları ve adları Notlar tablosunda ise öğrencilerin dersler bazında aldıkları notlar bulunmaktadır. Bir öğrencinin belirli bir dersten aldığı notu nasıl buluruz?
Örnek Cevap : 3 tabloyu birleştirerek. Nasıl? Öğrencinin TC Kimlik numarası kimlik tablosundan elde edilir. Öğrencinin aldığı dersler notlar tablosundan elde edilir. Derslerin adları dersler tablosundan elde edilir. Öğrencinin aldığı not notlar balosundan elde edilir.
Örnek Eşleşme Kimlik tablosu ve Notlar tablosu arasında TCKIMLIK kolonları ile Notlar tablosu ve Dersler tablosu arasında ise DRSKOD ve DERSKOD kolonları arasında gerçekleştirilir.
Örnek Öğrencinin adı,soyadı ve aldığı dersler ve notları öğrenmek için SELECT ADI,SOYADI,DERSAD,NOT FROM KIMLIK,NOT,DERSLER WHERE KIMLIK.TCKIMLIK = NOTLAR.TCKIMLIK AND NOTLAR.DERSKOD = DERSLER.DERSKOD
Örnek Eğer öğrencinin TC Kimliği de öğrenilmek istenseydi aynı kolon ismi hem Kimlik tablosunda hem de Notlar tablosunda bulunduğu için sorun çıkabilirdi. Bu sorunu engellemek için: SELECT KIMLIK.TCKIMLIK, ADI,SOYADI,DERSAD,NOT FROM KIMLIK,NOT,DERSLER WHERE KIMLIK.TCKIMLIK = NOTLAR.TCKIMLIK AND NOTLAR.DERSKOD = DERSLER.DERSKOD
Çalışma Otel programı yazınız. Otelde belirli bir oda sayısı olacaktır. Seçilen oda ile ilgili odada kalan kişilerin bilgileri, kaç gün kaldığı ekstralar tutulacaktır. Odaya sıfırdan giriş ve boşaltma işlemleri olacaktır. Oda boşaltma esnasında kalınan günlere ve ekstralara göre ödenecek tutar hesaplanacaktır.
Çalışma Veriler uygun şekilde tasarlanmış veritabanında tutulacaktır. Ödev tesliminde kodlar ve veritabanı dosyası beraber teslim edilecektir. Tablo tasarımı, ekran tasarımı, hata kontrolü ve kod kalitesi değerlendirme kriterleridir.