Asp Net Veritaban lemleri Asp Net Veritaban lemleri
Asp. Net Veritabanı İşlemleri
Asp. Net Veritabanı İşlemleri • Birçok uygulamada bilgiler geçici olarak tutulur ve oturum sonlandırıldığında bu bilgiler bellekten silinir. Ancak etkileşimli web sitelerinde bu bilgilerin tekrar kullanılmasına ihtiyaç vardır. Bu durumda bilgiler bellek yerine kalıcı olarak saklanır
Veri Erişim Teknolojileri Uygulamalarda veriye erişmek için birçok veri erişim teknolojisi geliştirilmiştir. Bu teknolojilerden bazıları aşağıdaki gibi sıralanabilir; • ODBC (Open Database Connectivity) Birçok kuruluşun katılımıyla geliştirilen ODBC teknolojisi ile birçok veri kaynağına bağlanılabilir. ODBC uygulama ortamlarında API (Application Programming Interface – Uygulama Programlama Arayüzü) sunmaktadır. Hem yerel (Local) hem de uzaktaki (Remote) veri kayaklarına erişmeye olanak sağlar. • DAO (Data Access Object) ODBC’nin kullanımının zor olması ve yeni dillerle kullanılamaması üzerine bu teknolojinin geliştirilmesiyle oluşturulmuş bir teknolojidir. • RDO (Remote Data Object) Uzak veri kaynaklarına erişimde ODBC’nin performansının geliştirilmesiyle oluşturulan daha yeni bir teknolojidir
• OLE DB (Object Linking and Embedding Data. Base) COM arayüzünü kullanarak birçok sisteme bağlantı sağlayan bir veri erişim teknolojisidir. Bu özelliği ile en çok kullanılan teknolojilerden biridir. ADO (Active. X Data Object) Yüksek seviyeli programlama dillerinde tercih edilen OLE DB teknolojisi kullanan ve veriye erişim kolaylaştıran bir teknolojidir. ADO. NET uygulamalarında her türlü veriye erişim için veri tiplerine sahip, COM desteği gerektirmeyen, XML standardı üzerine kurulmuş ve. NET platformu özelliklerini kullanabilen, ADO teknolojisinin gelişmiş versiyonudur.
ADO. NET Mimarisi • ADO. NET, . NET platformunda kullanılan ortak bir katmandır. . NET ile geliştirilen tüm uygulamalar, veriye erişimde ADO. NET tiplerinden faydalanmaktadır. • ADO. NET ile farklı veri tabanları ve veri tabanı yönetim sistemleri kullanılabilmektedir. Bu nedenle. NET platformu geliştirilirken farklı standartları destekleyen tipler yazılmış ve ayrı isim alanları (Namespace) oluşturulmuştur. Bu isim alanlarından bazıları şunlardır; SQL için, Sql Server Veri Sağlayıcısı (Sql Server. NET Data Provider) Oracle için, Oracle Veri Sağlayıcısı (Oracle Data Provider) OLEDB için, Ole. Db. NET Veri Sağlayıcısı (Ole. Db. NET Data Provider) ODBC için, ODBC : NET Veri Sağlayıcısı (ODBC. NET Data Provider) • Tüm bu isim alanları. NET platformunda System. Data isim alanı altında yer almaktadır. Veri tabanı ile bağlantı kurulacağı zaman System. Data isim alanı ile kullanılan veri erişim teknolojisi (System. Data. Kullanılan. Teknolojiİsim. Alanı) referans olarak uygulamaya eklenmelidir.
Connection Nesnesi • Veri kaynağı ve uygulama ister aynı ister farklı makinede yer alsın, veri kaynağı ile uygulama arasında bir bağ kurulmadan işlem yapılamaz. • Connection nesnesi, veri kaynağı ile uygulama arasında bağlantı kurmak, hangi veri kaynağına hangi güvenlik ayarlarıyla bağlanılacağını belirlemek için kullanılır. • Programlama yazılımında veri kaynağının türüne bağlı olarak Sql. Connection ve Ole. Db. Connection olmak üzere iki farklı yöntem kullanılır.
• Command Nesnesi Connection nesnesi kullanılarak veri kaynağı ile uygulama arasında bağlantı kurmak yeterli olmayacaktır. Veri kaynağına bilgi göndermek veya veri kaynağından veri almak için komutlar ve parametreler kullanılır. • Command nesnesi, bağlantı kurulan veri kaynağına müdahale etmeyi sağlar ve veri kaynağı ile uygulama arasında veri alma , veri verme isteklerini taşır. Programlama yazılımında Command nesnesi veri tabanı üzerinde komut yürütmek için Exute. Non. Query, Exute. Scalar ve Exute. Reader olmak üzere 3 farklı kullanımı vardır.
Data. Reader Nesnesi • Command nesnesi aracılığıyla veri kaynağından bir veri getirilecek olursa bu verileri uygulamada kullanabilmek için bazı bileşenlere ihtiyaç vardır. • Data. Reader nesnesi veri tabanından Command nesnesi ile getirilen verileri okumak için kullanılır.
Data. Adapter Nesnesi • Data. Adapter nesnesi, veri tabanı ile bağlantı kurulduktan sonra veri tabanından alınana verileri bellekte tutacak nesnelere aktarmak için kullanılır. Ayrıca verilere üzerinde değişiklik yapılarak veri tabanına tekrar aktarılması için de kullanılmaktadır. • Veri tabanında işlem yapmak için Data. Adapter nesnesinin 4 adet özelliği bulunur; Seçme işlemi için Select. Command, Ekleme işlemi için Insert. Command, Güncelleme işlemi için Update. Command, Silme işlemi için Delete. Command
• Data. Set Nesnesi Data. Set nesnesi, Data. Adapter nesnesi aracılığıyla alınan verileri bağlantısız olarak depolamak ve yönetmek için kullanılır.
Veri Tabanına Bağlanma • Connection nesnesi uygulamada kullanılan veri tabanına güvenlik ayarları belirtildikten sonra bağlanılabilir. Bağlantı açıldıktan sonra uygulama ile veri tabanı arasında veri aktarımı yapılabilir. • Bağlantı işleminde dikkat edilmesi gereken bir nokta veri aktarımı tamamlandıktan sonra bağlantının kapatılmasıdır. Bağlantı kapatılmadığı zaman sunucu kaynaklarının gereksiz kullanımı uygulama çalışma zamanında sorunlara sebep olacaktır.
ADO. NET Adımları • 1 – Öncelikle hangi veritabanına bağlanacaksa buna göre ilgili namespace eklenir, örneğin System. Data. Sql. Client. 2 – Daha sonra ilgili veritabanım için bağlantımı tanımlanır. Sql. Connection gibi. . 3 – Daha sonra veritabanı üzerindeki işlemleri belirtirtilir. Sql. Command gibi. . 4 – Daha sonra bağlantı açılır ve veri işlenir, Sql. Data. Reader gibi. . 5 – Sql. Data. Reader gibi objeleri ile verileri kullanır, gösterilir. . 6 – Son olarak veri tabanı bağlantısı kapatılır.
C# İle Sql. Data. Reader Kullanımı Bir ya da birden fazla satırların sonuç olarak döneceği sorgularda Sql. Command' ın Execute. Reader özelliği kullanılmaktadır. Execute. Reader geriye Sql. Data. Reader tipinde veri döndürmektedir. Sql. Data. Reader, sadece okunabilir olarak kullanılmaktadır. Satır satır okuma işlemi yapılmaktadır. Sql. Data. Reader kullanımı boyunca veritabanı bağlantısı açık olacaktır. Çünkü Sql. Data. Reader veritabanı ile bağlantılı olarak çalışmaktadır. Okuma işlemi sona erdiğinde Sql. Data. Reader bağlantısınında kapatılması gerekmektedir.
1. private void btn. Data. Reader_Click(object sender, Event. Args e) 2. { 3. Sql. Connection con = new Sql. Connection(Baglanti. Adresi); 4. Sql. Command cmd = new Sql. Command(); 5. cmd. Connection = con; 6. cmd. Command. Text = "SELECT Adi FROM Kisiler"; 7. con. Open(); 8. 9. Sql. Data. Reader dr = cmd. Execute. Reader(); 10. 11. Array. List Isimler = new Array. List(); 12. 13. while (dr. Read()) 14. { 15. Isimler. Add(dr["Adi"]); 16. } 17. 18. dr. Close(); 19. con. Close(); 20. }
Okuma işlemi Sql. Data. Reader nesnesinin Read() metodu ile yapılmaktadır. Read() metodu geriye bool türünde değer döndürmektedir. Okunacak satır var ise true, yoksa false değerini döndürmektedir. Bildiğiniz üzere while döngüsü koşul true olduğu sürece icra edilmektedir. Burada da Read() metodu true değerini aldığı sürece işlem görmeye devam edecektir. İşlem sonunda ise Sql. Data. Reader nesnesi Close() metodu ile kapatılmaktadır.
C# İle Sql. Data. Adapter Kullanımı • Sql. Data. Adapter, veritabanı işlemlerinde en çok kullanılacak olan sınıflardan birisidir. Select sorgusu ile verileri Data. Set ya da Data. Table' a doldurmaktır. Sql. Data. Adapter nesnesini kullanmak için bir select sorgusuna ihtiyaç vardır. • Sql. Data. Adapter nesnesinin Select. Command özelliğine Sql. Command nesnesi setlenmektedir ve buna göre işlem gerçekleşmektedir. Dikkat edilmesi gereken en önemli noktalardan bir tanesi Sql. Connection nesnesinin Open() ve Close() metodları kullanılmamıştır. Bunun nedeni Sql. Data. Adapter nesnesinin bu işlemi kendi içerisinde gerçekleştiriyor olmasıdır. Sql. Data. Adapter ile veri çekme işlemlerinde ayrıca bağlantıyı açma ve kapatma işlemlerini yapmak gerekmemektedir.
• Verileri doldurmak için Data. Set ya da Data. Table' a ihtiyacımız vardır. Doldurma işlemide Sql. Data. Adapter' ın Fill metodu ile yapılmaktadır. 1. private void btn. Data. Adapter_Click(object sender, Event. Args e) 2. { 3. Sql. Connection con = new Sql. Connection(Baglanti. Adresi); 4. Sql. Command cmd = new Sql. Command("SELECT * FROM Kisiler", con); 5. Sql. Data. Adapter da = new Sql. Data. Adapter(); 6. da. Select. Command = cmd; 7. Data. Table dt = new Data. Table(); 8. da. Fill(dt); 9. }
- Slides: 17