İNTERNET PROGRAMLAMA – 2 |A S P . N E T Marmara Teknik Bilimler MYO / Hafta 5 – Veri Tabanı İşlemleri VERİTABANI BAĞLANTISI Site içindeki bilgilerin saklanması / düzenlenmesi ve kullanıcı etkileşiminin sağlanabilmesi için; veriler, ilişkisel veri depolama modeli kullanılarak tutulmalıdır. Bu yöntemde geliştirilen uygulamalara İlişkisel Veri Tabanı Yönetim Sistemi adı verilmektedir. Bu yöntemde veriyi saklamak ve tekrar kullanılmak üzere depolamak için kullanılan sistemler ise Veritabanı (Database) olarak tanımlanabilir. Verileri depolamak için farklı veritabanı uygulama yazılımları kullanılabilir. Programlama yazılımı ile bu veritabanlarına bağlantı kurularak veriler üzerinde işlem yapılabilir. WEB TASARIMI VE PROGRAMLAMA 2 VERİTABANI BAĞLANTISI • Veri Erişim Teknolojileri Uygulamalarda veriye erişmek için birçok veri erişim teknolojisi geliştirilmiştir: ODBC (Open Database Connectivity) DAO (Data Access Object) RDO (Remote Data Object) OLE DB (Object Linking and Embedding DataBase) ADO (ActiveX Data Object) ADO.NET WEB TASARIMI VE PROGRAMLAMA 3 VERİTABANI BAĞLANTISI • ADO.NET Mimarisi .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ı veritabanları ve veritabanı yönetim sistemleri kullanılabilir. Bu nedenle .NET platformu geliştirilirken farklı standartları destekleyen ayrı isim alanları (Namespace) oluşturulmuştur: SQL SQL Server Veri Sağlayıcı Oracle Oracle Veri Sağlayıcı (Oracle Data Provider) OLEDB OleDb .NET Veri Sağlayıcı ODBC ODBC .NET Veri Sağlayıcı WEB TASARIMI VE PROGRAMLAMA 4 VT BAĞLANTISI / ADO.NET MİMARİSİ • 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. Visual Studio’da veri kaynağının türüne bağlı olarak; SqlConnection OleDbConnection olmak üzere iki farklı yöntem kullanılır. WEB TASARIMI VE PROGRAMLAMA 5 VT BAĞLANTISI / ADO.NET MİMARİSİ • Command Nesnesi Bağlantı kurulan veri kaynağına müdahale etmeyi sağlar ve veri kaynağı ile uygulama arasında veri alma-verme isteklerini taşır. Command nesnesinin Visual Studio’da veritabanı üzerinde komut yürütmesi için; ExuteNonQuery ExuteScalar ExuteReader olmak üzere 3 farklı kullanımı vardır. WEB TASARIMI VE PROGRAMLAMA 6 VT BAĞLANTISI / ADO.NET MİMARİSİ • DataReader Nesnesi Veritabanından Command nesnesi getirilen verileri okumak için kullanılır. ile • DataAdapter Nesnesi Veritabanı ile bağlantı kurulduktan sonra veri tabanından alınan verileri, bellekte tutacak nesnelere aktarmak ve gerekli düzenlemelerden sonra tekrar veritabanına aktarmak için kullanılır. WEB TASARIMI VE PROGRAMLAMA 7 VT BAĞLANTISI / ADO.NET MİMARİSİ • DataAdapter Nesnesi Veritabanında işlem yapmak için 4 özelliği vardır: Seçme / SelectCommand Ekleme / InsertCommand Güncelleme / UpdateCommand, Silme / DeleteCommand • DataSet Nesnesi DataAdapter nesnesi aracılığıyla alınan verileri bağlantısız olarak depolamak ve yönetmek için kullanılır. WEB TASARIMI VE PROGRAMLAMA 8 VERİTABANI BAĞLANTISI • Veritabanı Oluşturma Veritabanı, harici bir veritabanı uygulaması (Access, SQL Server, vb…) üzerinden oluşturulabileceği gibi Visual Studio aracılığıyla da oluşturulabilir. Veritabanı, web sitesi içindeki App_Data klasörüne yüklenmelidir. Solution Explorer alanında Web Site üzerinde sağ tuşla açılan menüden Add ASP.NET Folder / App_Data tıklanarak ilgili klasör eklenebilir. WEB TASARIMI VE PROGRAMLAMA 9 VERİTABANI BAĞLANTISI • Veritabanına Bağlanma Uygulamada kullanılan veritabanına; Connection nesnesiyle 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. Veri aktarımı tamamlandıktan sonra bağlantı kapatılmalıdır. Bağlantı kapatılmadığı zaman sunucu kaynaklarının gereksiz kullanımı uygulama çalışma zamanında sorunlara sebep olabilir. WEB TASARIMI VE PROGRAMLAMA 10 VERİTABANI BAĞLANTISI • Veritabanına Bağlanma Uygulama yazılımından harici bir Access veritabanına bağlanmak için öncelikle System.Data.OleDb isim alanının uygulamaya (default.aspx.cs) eklenmesi gerekmektedir. WEB TASARIMI VE PROGRAMLAMA 11 VERİTABANI BAĞLANTISI • Veritabanına Bağlanma OleDbConnection baglanti_adi = new OleDbConnection ("connection_string_ifadesi; Data Source=" + Server.MapPath("veritabanı_yolu_ve_adi")); OleDbConnection: Access veritabanına bağlanmak için kullanılan Connection nesnesini ifade eder. connection_string (Provider): Bağlantı sağlayıcının ismini tutar. OleDbConnection nesnesi ile birlikte kullanılır. Kullanılacak VT sürümüne göre değişir. Data Source: Veritabanı adını belirtmek için kullanılır. Server.MapPath: Veritabanı dosyasının sunucu üzerindeki yolunu eşleştirmek için kullanılır. WEB TASARIMI VE PROGRAMLAMA 12 VERİTABANI İŞLEMLERİ Veritabanı ile bağlantı kurulduktan sonra veritabanı içindeki veriler seçilebilir, bir kontrole aktarılabilir; ya da veritabanı içinde veri ekleme / güncelleme / silme işlemleri gerçekleştirilebilir. • Bağlantıyı Açma - Kapama Veritabanı bağlantı cümlesi yazıldıktan bağlantının açılması gerekir. baglanti_adi.Open(); sonra Veritabanı ile veri alış-verişi tamamlandıktan sonra bağlantı mutlaka kapatılmalıdır. baglanti_adi.Close(); WEB TASARIMI VE PROGRAMLAMA 13 VERİTABANI İŞLEMLERİ • Veri Ekleme Veritabanında bulunan bir veya birden fazla alana veri eklemek için INSERT SQL komutu kullanılır. Veritabanından veriler aşağıdaki komutla eklenir: OleDbCommand komut_adi = new OleDbCommand ("INSERT INTO tablo_adi (eklenecek_veriler) VALUES (form_arayuzundeki_kontrollere_bagli_parametreler)", baglanti_adi); WEB TASARIMI VE PROGRAMLAMA 14 örnek uygulama Adım • Bir web sitesi oluşturulur. (01_vt_uyg1) 1 • Bu web sitesi içinde App_Data klasörü oluşturulur. WEB TASARIMI VE PROGRAMLAMA 15 örnek uygulama Adım • vt adında bir veritabanı oluşturulur. 2 • Veritabanı içine uyeler isimli bir tablo eklenir ve ilgili alanlar tanımlanır. • Tablo, içine kayıt eklenmeden kapatılır. WEB TASARIMI VE PROGRAMLAMA 16 örnek uygulama Adım • Veritabanı, kaydedilerek kapatılır. 3 • Web site altındaki App_Data klasörüne taşınır. WEB TASARIMI VE PROGRAMLAMA 17 örnek uygulama Adım • Web sitesi içinde yeni bir Web Form sayfası açılır. 4 • Sayfa içine kullanıcı adı ve parola girişi için uygun kontroller eklenir. WEB TASARIMI VE PROGRAMLAMA 18 örnek uygulama 5 Adım • EKLE butonuna tıklanarak açılan CS sayfasının başına System.Data.OleDb isim alanı eklenir. WEB TASARIMI VE PROGRAMLAMA 19 örnek uygulama 6 Adım • EKLE butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanı bağlantısı için gerekli kod yazılır. ‘‘Provider.. ’’ ifadesi Access sürümüne göre değişebilmektedir. WEB TASARIMI VE PROGRAMLAMA 20 örnek uygulama 7 Adım • EKLE butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanı bağlantısının açılması için gerekli kod eklenir. WEB TASARIMI VE PROGRAMLAMA 21 örnek uygulama 8 Adım • EKLE butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanına veri eklemek için gerekli SQL ifadesi yazılır ve bu ifade, tanımlanan OleDbCommand nesnesi içine aktarılır. WEB TASARIMI VE PROGRAMLAMA 22 örnek uygulama 9 Adım • INSERT ifadesi içinde tanımlanan parametrelere, web formundaki sunucu kontrollerine girilecek bilgilerin aktarılması için gerekli kodlama yapılır. WEB TASARIMI VE PROGRAMLAMA 23 örnek uygulama 10 Adım • Hazırlanan sorgunun çalıştırılması için gerekli kod satırı eklenir. WEB TASARIMI VE PROGRAMLAMA 24 örnek uygulama 11 Adım • Button_Click olayının içine veritabanı bağlantısının kapatılması için gerekli kod eklenir. WEB TASARIMI VE PROGRAMLAMA 25 örnek uygulama 12 Adım • Uygulama çalıştırılarak test edilir. WEB TASARIMI VE PROGRAMLAMA 26 VERİTABANI İŞLEMLERİ • Veri Güncelleme Veritabanında bulunan bir veya birden fazla veriyi güncellemek için UPDATE SQL komutu kullanılır. Veritabanındaki veriler aşağıdaki komutla güncellenir: OleDbCommand komut_adi = new OleDbCommand ("UPDATE tablo_adi SET degisecek_alan=parametre_değeri WHERE koşul_alani=parametre_degeri", baglanti_adi); WEB TASARIMI VE PROGRAMLAMA 27 örnek uygulama Adım • Bir web sitesi oluşturulur. (02_vt_uyg2) 1 • Bu web sitesi içinde App_Data klasörü oluşturulur. • Önceden hazırlanmış veritabanı dosyası App_Data klasörüne taşınır. • Web sitesi içinde yeni bir Web Form sayfası açılır. • Sayfa içine kullanıcı adı ve parola güncelleme işlemi için uygun kontroller eklenir. WEB TASARIMI VE PROGRAMLAMA 28 örnek uygulama 2 Adım • EKLE butonuna tıklanarak açılan CS sayfasının başına System.Data.OleDb isim alanı eklenir. WEB TASARIMI VE PROGRAMLAMA 29 örnek uygulama 3 Adım • GÜNCELLE butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanı bağlantısı için gerekli kod yazılır. ‘‘Provider.. ’’ ifadesi Access sürümüne göre değişebilmektedir. WEB TASARIMI VE PROGRAMLAMA 30 örnek uygulama 4 Adım • GÜNCELLE butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanı bağlantısının açılması için gerekli kod eklenir. WEB TASARIMI VE PROGRAMLAMA 31 örnek uygulama 5 Adım • GÜNCELLE butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanında istenen veriyi güncellemek için gerekli SQL ifadesi yazılır ve bu ifade, tanımlanan OleDbCommand nesnesi içine aktarılır. WEB TASARIMI VE PROGRAMLAMA 32 örnek uygulama 6 Adım • UPDATE ifadesi içinde tanımlanan parametrelere, web formundaki sunucu kontrollerine girilecek bilgilerin aktarılması için gerekli kodlama yapılır. WEB TASARIMI VE PROGRAMLAMA 33 örnek uygulama 7 Adım • Hazırlanan sorgunun çalıştırılması için gerekli kod satırı eklenir. WEB TASARIMI VE PROGRAMLAMA 34 örnek uygulama 8 Adım • Button_Click olayının içine veritabanı bağlantısının kapatılması için gerekli kod eklenir. WEB TASARIMI VE PROGRAMLAMA 35 örnek uygulama Adım • Uygulama çalıştırılarak test edilir. WEB TASARIMI VE PROGRAMLAMA 9 36 VERİTABANI İŞLEMLERİ • Veri Silme Veritabanında bulunan bir veya birden fazla veriyi silmek için DELETE SQL komutu kullanılır. Veritabanındaki veriler aşağıdaki komutla silinir: OleDbCommand komut_adi = new OleDbCommand ("DELETE from tablo_adi WHERE kosul_alani=parametre_degeri", baglanti_adi); WEB TASARIMI VE PROGRAMLAMA 37 örnek uygulama Adım • Bir web sitesi oluşturulur. (03_vt_uyg3) 1 • Bu web sitesi içinde App_Data klasörü oluşturulur. • Önceden hazırlanmış veritabanı dosyası App_Data klasörüne taşınır. • Web sitesi içinde yeni bir Web Form sayfası açılır. • Sayfa içine kullanıcı adına göre parola silme işlemi için uygun kontroller eklenir. WEB TASARIMI VE PROGRAMLAMA 38 örnek uygulama 2 Adım • SİL butonuna tıklanarak açılan CS sayfasının başına System.Data.OleDb isim alanı eklenir. WEB TASARIMI VE PROGRAMLAMA 39 örnek uygulama 3 Adım • SİL butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanı bağlantısı için gerekli kod yazılır. ‘‘Provider.. ’’ ifadesi Access sürümüne göre değişebilmektedir. WEB TASARIMI VE PROGRAMLAMA 40 örnek uygulama 4 Adım • SİL butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanı bağlantısının açılması için gerekli kod eklenir. WEB TASARIMI VE PROGRAMLAMA 41 örnek uygulama 5 Adım • SİL butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanında istenen kaydı silmek için gerekli SQL ifadesi yazılır ve bu ifade, tanımlanan OleDbCommand nesnesi içine aktarılır. WEB TASARIMI VE PROGRAMLAMA 42 örnek uygulama 6 Adım • SİL ifadesi içinde tanımlanan parametrelere, web formundaki sunucu kontrolüne girilecek bilginin aktarılması için gerekli kodlama yapılır. WEB TASARIMI VE PROGRAMLAMA 43 örnek uygulama 7 Adım • Hazırlanan sorgunun çalıştırılması için gerekli kod satırı eklenir. WEB TASARIMI VE PROGRAMLAMA 44 örnek uygulama 8 Adım • Button_Click olayının içine veritabanı bağlantısının kapatılması için gerekli kod eklenir. WEB TASARIMI VE PROGRAMLAMA 45 örnek uygulama Adım • Uygulama çalıştırılarak test edilir. WEB TASARIMI VE PROGRAMLAMA 9 46 VERİTABANI İŞLEMLERİ • Veri Seçme Veritabanında bulunan bir veya birden fazla veriyi seçmek için SELECT SQL komutu kullanılır. Veritabanından veriler aşağıdaki komutla seçilir: OleDbCommand komut_adi = new OleDbCommand("SELECT secilecek_veriler FROM tablo_adi", baglanti_adi); WEB TASARIMI VE PROGRAMLAMA 47 örnek uygulama Adım • Bir web sitesi oluşturulur. (04_vt_uyg4) 1 • Bu web sitesi içinde App_Data klasörü oluşturulur. • Önceden hazırlanmış veritabanı dosyası App_Data klasörüne taşınır. • Web sitesi içinde yeni bir Web Form sayfası açılır. • Sayfa içine kullanıcı adı ve parola giriş işlemi için uygun kontroller eklenir. WEB TASARIMI VE PROGRAMLAMA 48 örnek uygulama 2 Adım • EKLE butonuna tıklanarak açılan CS sayfasının başına System.Data.OleDb isim alanı eklenir. WEB TASARIMI VE PROGRAMLAMA 49 örnek uygulama 3 Adım • GİRİŞ butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanı bağlantısı için gerekli kod yazılır. ‘‘Provider.. ’’ ifadesi Access sürümüne göre değişebilmektedir. WEB TASARIMI VE PROGRAMLAMA 50 örnek uygulama 4 Adım • GİRİŞ butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanı bağlantısının açılması için gerekli kod eklenir. WEB TASARIMI VE PROGRAMLAMA 51 örnek uygulama 5 Adım • GİRİŞ butonuna tıklanarak açılan aspx.cs sayfasındaki Button_Click olayının içine veritabanından veri seçmek için gerekli kod eklenir. WEB TASARIMI VE PROGRAMLAMA 52 örnek uygulama 6 Adım • Veritabanından seçilen verileri okumak ve TextBox içindeki değerlerle karşılaştırmak için gerekli kodlar yazılır. WEB TASARIMI VE PROGRAMLAMA 53 örnek uygulama 7 Adım • Button_Click olayının içine veritabanı bağlantısının kapatılması için gerekli kod eklenir. WEB TASARIMI VE PROGRAMLAMA 54 örnek uygulama Adım • Uygulama çalıştırılarak test edilir. WEB TASARIMI VE PROGRAMLAMA 8 55 örnek uygulama İlçe alanındaki veriler, İl alanı içindeki değere göre otomatik olarak değişecektir. Bunun için İl kontrolünün AutoPostBack özelliği TRUE olarak düzenlenmelidir. Ekran görüntüsü verilen sayfa içindeki kontrollere uygun veritabanını oluşturduktan sonra kontroller içine girilen bilgilerin veritabanı içindeki ilgili tabloya eklenmesini sağlayacak kodlamayı yapınız. WEB TASARIMI VE PROGRAMLAMA 56