Upload
kelly-davidson
View
69
Download
4
Embed Size (px)
DESCRIPTION
Görsel Programlama II. Ders 1. Öğr.Gör. Mustafa KARABULUT. Konular. ADO.NET ADO.NET Veri Erişim Modelleri Bağlantılı (Connected) model Bağlantısız (Disconnected) model ADO.NET Sınıfları Örnek uygulama. ADO.NET. ActiveX Data Objects (ActiveX Veri Nesneleri) - PowerPoint PPT Presentation
Citation preview
Görsel Programlama IIGörsel Programlama IIDers 1
Öğr.Gör. Mustafa KARABULUT
KonularKonularADO.NETADO.NET Veri Erişim Modelleri
◦Bağlantılı (Connected) model◦Bağlantısız (Disconnected) model
ADO.NET SınıflarıÖrnek uygulama
ADO.NETADO.NETActiveX Data Objects (ActiveX Veri
Nesneleri)Microsoft’un veri erişim teknolojisidirTüm .NET dilleri (Visual Basic.NET, C# ve
diğerleri) için ortak bir teknolojidirVisual Studio kurulumu ile Sql Server,
Oracle ve Access veritabanları erişim için gereken eklentiler kurulu gelmektedir.
Diğer veritabanları için, ör: MySQL, veritabanına özel sürücü kurularak onlara da bağlantı yapılabilir
ADO.NET veri erişim ADO.NET veri erişim modellerimodelleriBağlantılı (Connected) model
◦ Tek yönlü okuma veya yazma işlemi◦ Veriler güncel◦ Veritabanı bağlantısı sürekli açık◦ Ağ trafiği yoğun
Bağlantısız (Disconnected) model◦ Çift yönlü okuma ve yazma◦ Veriler yerel olarak kaydedilir ve güncel
değildir◦ Veritabanı bağlantısı sürekli açık değildir◦ Ağ trafiği nisbeten azdır
ADO.NET veri erişim ADO.NET veri erişim modellerimodelleri
ADO.NET sınıflarıADO.NET sınıflarıKullanılacak veritabanı türüne göre XXX yerine Sql,
OleDb, Oracle veya Odbc ön ekleri kullanılmaktadır.Örneğin Sql Server için bağlantı nesnesi
SqlConnection olmaktadır.
Veritabanı türü Bağlantı nesnesi
Sql Server 2000, 2005 veya 2008
SqlConnection
Oracle OracleConnection
Odbc veri kaynağı OdbcConnection
Access ve diğer veritabanları
OleDbConnection
ADO.NET SınıflarıADO.NET SınıflarıDiğer bazı sınıflar
Sınıf adı Sql Server Oracle Access v.b.
XxxConnection
SqlConnection
OracleConnection
OleDbConnection
XxxCommand SqlCommand OracleCommand OleDbCommand
XxxDataAdapter
SqlDataAdapter
OracleDataAdapter
OleDbDataAdapter
XxxDataReader
SqlDataReader
OracleDataReader
OleDbDataReader
DataSet DataSet DataSet DataSet
ADO.NET sınıflarıADO.NET sınıflarıBu sınıfları kullanmak için
kodumuza belli kütüphaneleri using ifadesi ile eklememiz gerekmektedir.
Örneğin SqlConnection, SqlCommand gibi Sql Server’a özel sınıfları kullanmak için kodumuza aşağıdaki ifade eklenmelidir◦using System.Data.SqlClient;
ADO.NET sınıflarıADO.NET sınıflarıDiğer veritabanları için gerekli
using ifadeleri:
Veritabanı türü using ifadesi
Sql Server 2000, 2005, 2008
System.Data.SqlClient
Oracle System.Data.OracleClient
Odbc System.Data.OdbcClient
Access ve diğerleri System.Data.OleDbClient
ADO.NET sınıflarıADO.NET sınıflarıBağlantılı veri erişiminde kullanılan
sınıflar ve kullanım amaçları
Sınıf Amaç
SqlConnection Veritabanına bağlantı kurar, diğer nesneler bu nesne üzerinden sorgulama yaparlar
SqlCommand Veritabanı üzerinde sorgu (SELECT, DELETE, INSERT v.b.) çalıştırılmasını sağlar.
SqlDataReader SqlCommand ile çalıştırılan bir SELECT sorgusunun sonucunu satır satır okumaya yarar
ADO.NET sınıflarıADO.NET sınıflarıBağlantısız veri erişiminde kullanılan
sınıflar ve kullanım amaçları
Sınıf Amaç
SqlConnection Bağlantılı kullanımla aynıdır, ortak bir sınıftır.
SqlDataAdapter Veritabanından kayıtları çekmek, çekilen kayıtlarda yapılan değişiklikleri de tekrar veritabanına kaydetmek için kullanılır.
DataSet Veritabanından çekilen kayıtların depolanması ve yönetilmesi amacıyla kullanılır.
Tüm veritabanı türleri için bu sınıf ortaktır.
ADO.NET sınıflarıADO.NET sınıflarıHerhangi bir ADO.NET sınıfı
kullanılırken önce new operatörü ile oluşturulur.◦SqlConnection c = new SqlConnection();
Oluşturulan değişken üzerinden nesnenin özellikleri değiştirilir veya metotları çağrılır◦c.ConnectionString = @” ……… “;◦c.Open( );◦c.Close( );
ADO.NET sınıflarıADO.NET sınıflarıÖrnek bir SqlCommand kullanımı
◦ SqlCommand cmd = new SqlCommand( );◦ cmd.Connection = c;◦ cmd.CommandText = “DELETE FROM
musteriler”;◦ cmd.ExecuteNonQuery( );
Bu kod parçası kurulan “c” bağlantısı üzerinden musteriler tablosundaki kayıtları silmektedir.
ADO.NET sınıflarıADO.NET sınıflarıSqlCommand nesnesinde kullanılan
özellik ve metotların amaçlarıÖzellik/Metot Amaç
cmd.Connection Sorgulamanın hangi bağlantı üzerinden yapılacağını belirler
cmd.CommandText Hangi SQL sorgusunun çalışacağını belirler. Buraya geçerli bir SQL sorgusu (SELECT, DELETE, INSERT v.b.) yazılmalıdır.
cmd.ExecuteNonQuery( ) Yazılan, geriye sonuç döndürmeyen sorguyu çalıştırır. Yazılan sorgu SELECT dışında bir sorgu olmalıdır.
cmd.ExecuteScalar( ) SELECT sorgusu sonucu geriye dönen ilk değeri almak için kullanılır
cmd.ExecuteReader( ) SELECT sorgusu sonucu geriye dönen satırları SqlDataReader ile satır satır okumak için kullanılır
Örnek bir uygulamaÖrnek bir uygulamaVeritabanındaki en son sipariş
tarihini textBox içine yazdıran program.
Bunun için ticaret.mdf ve ticaret_log.mdf Sql server dosyalarının indirilip, c:\vt\ konumuna konması gerekmektedir.
Dosyalar hazırlandıktan sonra Visual C# Express Edition açılır ve yeni bir proje oluşturulur….
Örnek bir uygulamaÖrnek bir uygulama
Yeni proje oluşturma yollarından birisi Start
Page’deki Create seçeneğini kullanmaktır
Örnek uygulamaÖrnek uygulamaProje türü:
“Windows Forms Application”
Proje adı :“VtIlkDeneme”
Örnek bir uygulamaÖrnek bir uygulama
Form üzerine bir TextBox kontrolü (textBox1)
konuluyor…
TextBox’ınMultiline özelliği true
Dock özelliği Fill olarak seçiliyor
Örnek uygulamaÖrnek uygulamaForm ekrana geldiğinde müşterilerin textbox1’e
yüklenmiş olmasını istiyoruzBunun için Form’un Load olayına kod yazacağız.
Events(Olaylar) ekranından Load’a çift
tıklayarak da aynı iş yapılabilir
Load olayına kod yazmak için Form’un boş bir kısmına çift tıklanıp, kod ekranı
açılmalıdır
Örnek uygulamaÖrnek uygulama
Örnek uygulamaÖrnek uygulama
F5 tuşuna veya çalıştır tuşuna
basarak program çalıştırılır