ADO.NET - OleDbConnection

advertisement
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
Bağlantını özelliklerini ayarlamak için ekranın altındaki
bağlantı nesnesine sağ tuşla tıklayıp, açılan menüden
Properties sekmesini seçilmelidir.
Açılan pencereden bağlantının ismini değiştirdikten sonra
Connection 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
Nesneni
n Adı
Kulanacağı
bağlantı
Ç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.


Read() fonksiyonu çağrılarak okumaya başlar veya sonraki kayıta
geçer.



OleDbDataReader ordr = ocmd.ExecuteReader();
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
Komut Nesnesi
Dataset
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İ’




SELECT * FROM PERSONEL WHERE ADI LIKE ‘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.
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


DELETE FROM PERSONEL WHERE YAS < 18


Bu komut personel tablosundaki tüm kayıtları siler.
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
KIMLIK
TCID
11111
22222
AD
ALİ
VELİ
DERSLER
SOYAD
KAYA
TAN
NOTLAR
TCID DERS NOT
KOD
11111 5
50
11111 6
70
DRSKOD DERSAD
5
FİZİK
6
KİMYA
Ö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.
Download