VeriTabanı Uygulamaları Bir uygulamanın esas gücünü, veri, veri tabanları ve veri kaynakları ile olan ilişkisi belirler. Eğer bunlara kolayca hakim olan, yöneten teknolojilere sahipse o uygulama gerçekten çok esnek ve güçlü bir yapıyı barındırır. ASP uygulamalarında veri erişimi ve yönetimi için ADO (Active X Data Objects) kullanılırdı. ADO, geliştiricilere programatik bir arabirim sunarak, veri tabanına kolayca ulaşılabilmesini ve yönetimini sağlıyordu..net ile birlikte ADO nun yerini ADO.NET aldı. Uygulamalarda ADO.NET nesnelerimizle, bir veri tabanı yapısı oluşturulabilir. Yani uygulamamıza özel prgoramatik bir veri tabanı oluşturulabilir ve bunu veri tabanı mantığı ile kullanılabilir. Veri Tabanı Bağlantı Yöntemi.NET, veri teminini sağladığı kaynaklarla olan ilişkisini yöneten bir takım nesneler ile gelmektedir. Bu anlamda, konuyu sadece veri tabanına bağlamak değil, bu veri temincisi ile ilişkileri düzenleyen ve yöneten daha geniş bir bakış açısını ele almaktadır. Bunun için farklı sınıflarda temel 4 bileşen tanımlanmaktadır. Bunlar: Connection (Bağlantı) : Bir veri kaynağına bağlantı oluşturmak Command (Komut) : SQL ifadeleri ile komutlar vermek. DataReader (Veri Okuyucusu) : Veri kaynağından uygulamaya sadece okunabilir kayıt setini temsil eder. DataAdapter : Dataset ile veri kaynağı arasında köprü oluşturur. Bütün bunlara Managed Provider da denir..net te Managed Provider iki temel veri tabanı bağlantı biçimi içinde tanımlıdır. Bunlar SQL server ve OLEDB. Örnek Uygulamalar: Uygulama 1: Access veri tabanına bağlanma, veri tabanındaki Ogrenciler tablosundaki verileri çekme ve çekilen verileri ekrana yazdırma uygulaması. Dikkat edilmesi gereken noktalar: veri tabanı adı, tablo adı, tablolardaki sütün isimleri, SQL ifadesi (Select ), ExecuteReader komutu. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="VeriTabani._default" %> <%@ Import Namespace="System.Data.OleDb" %> <script runat="server">
db_komut = new OleDbCommand("Select * from Ogrenciler", db_baglanti); OleDbDataReader alinan_veri; alinan_veri = db_komut.executereader(); while (alinan_veri.read()) Response.Write(alinan_veri["ad"] + " " + alinan_veri["soyad"]+"<br>"); </script> Uygulama 2. TextBox dan girilen bir verinin, butona tıklanarak form.aspx.cs sayfasına gönderilmesi ve burada veri tabanına bağlanılıp veri tabanındaki Ogrenciler tablosundaki verilerle karşılaştırılması. Eğer karşılaştırmaya uygun veri varsa bu verilerin ekrana yazdırılması. Dikkat edilmesi gereken noktalar: uygulama 1 dekilerin yanı sıra like kullanımı. form.aspx sayfası: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="form.aspx.cs" Inherits="VeriTabani.form" %> <asp:textbox ID="tercih" runat="server"></asp:textbox><br /> <asp:button ID="buton" runat="server" Text="Gönder" OnClick="secim" /> form.aspx.cs sayfası:
public partial class form : System.Web.UI.Page protected void secim(object sender, EventArgs e) string kosul = tercih.text; db_komut = new OleDbCommand("Select * from Ogrenciler where ad like '%" + kosul + "%'", db_baglanti); OleDbDataReader alinan_veri; alinan_veri = db_komut.executereader(); "<br>"); while (alinan_veri.read()) Response.Write(alinan_veri["ad"] + " " + alinan_veri["soyad"] + Uygulama 3. Formdan girilen verilerin veri tabanına kaydedilmesi. Dikkat edilmesi gereken noktalar: SQL deki insert into sorgusunun yapısı, ExecuteNonQuery komutunun kullanımı. formekleme.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="formekleme.aspx.cs" Inherits="VeriTabani.formekleme" %> <asp:textbox ID="ad" runat="server"></asp:textbox><br /> <asp:textbox ID="soyad" runat="server"></asp:textbox><br /> <asp:textbox ID="bolum" runat="server"></asp:textbox><br /> <asp:textbox ID="ogrno" runat="server"></asp:textbox><br /> <asp:textbox ID="sehir" runat="server"></asp:textbox><br /><br /> <asp:button ID="buton" runat="server" Text="Gönder" OnClick="secim" />
formekleme.aspx.cs public partial class formekleme : System.Web.UI.Page protected void secim(object sender, EventArgs e) string adbilgi = ad.text; string soyadbilgi = soyad.text; string bolumbilgi = bolum.text; string ogrnobilgi = ogrno.text; string sehirbilgi = sehir.text; db_komut = new OleDbCommand("insert into Ogrenciler (ad, soyad, bolum, ogrno, sehir) Values ('" + adbilgi + "','" + soyadbilgi + "','" + bolumbilgi + "', '" + ogrnobilgi + "', '" + sehirbilgi + "')", db_baglanti); db_komut.executenonquery(); Response.Write("Öğrenci Kaydedildi"); Uygulama 4. Veri tabanındaki verilerin seçilerek silinmesi. Dikkat edilmesi gereken noktalar: ListBox ile seçim kutusunun hazırlanması, SQL deki delete from sorgusunun yapısı, ExecuteNonQuery komutunun kullanımı. formsil.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="formsil.aspx.cs" Inherits="VeriTabani.formsil" %>
<asp:listbox ID="ListBox1" runat="server" DataSourceID="AccessDataSource1" DataTextField="ad" DataValueField="ad" Width="122px"></asp:ListBox> <asp:accessdatasource ID="AccessDataSource1" runat="server" DataFile="~/veritabani.mdb" SelectCommand="SELECT [ad], [soyad], [no] FROM [Ogrenciler]"> </asp:accessdatasource><br /><br /> <asp:button ID="Button1" runat="server" Text="Öğrenci Sil" OnClick="ogrencisil" /> formsil.aspx.cs public partial class formsil : System.Web.UI.Page protected void ogrencisil(object sender, EventArgs e) string adbilgi = ListBox1.Text; db_komut = new OleDbCommand("Delete from Ogrenciler Where ad='"+adbilgi+"'", db_baglanti); db_komut.executenonquery(); Response.Redirect("formsil.aspx"); Uygulama 5. Veri tabanındaki verilerin seçilip güncellenmesini sağlayan bir uygulama. Dikkat edilmesi gereken noktalar: ListBox ile seçim kutusunun hazırlanması, SQL deki update set sorgusunun yapısı, ExecuteNonQuery komutunun kullanımı. Sayfada 2 buton kullanımı, bu iki butonun metotlarla ilişkisi
formguncelle.aspx <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="formguncelle.aspx.cs" Inherits="VeriTabani.formguncelle" %> <asp:listbox ID="ListBox1" runat="server" DataSourceID="AccessDataSource1" DataTextField="ad" DataValueField="ad" Width="122px"></asp:ListBox> <asp:accessdatasource ID="AccessDataSource1" runat="server" DataFile="~/veritabani.mdb" SelectCommand="SELECT [ad], [soyad], [no] FROM [Ogrenciler]"> </asp:accessdatasource><br /><br /> <asp:button ID="Button1" runat="server" Text="Öğrenci Seç" OnClick="ListBox1_SelectedIndexChanged" /><br /><br /> <asp:textbox ID="ad" runat="server" ReadOnly="true"></asp:TextBox><br /> <asp:textbox ID="soyad" runat="server"></asp:textbox><br /> <asp:textbox ID="bolum" runat="server"></asp:textbox><br /> <asp:textbox ID="ogrno" runat="server"></asp:textbox><br /> <asp:textbox ID="sehir" runat="server"></asp:textbox><br /><br /> <asp:button ID="buton" runat="server" Text="Güncelle" OnClick="guncelle" /> formguncelle.aspx.cs public partial class formguncelle : System.Web.UI.Page protected void guncelle(object sender, EventArgs e) string adbilgi = ad.text; string soyadbilgi = soyad.text; string bolumbilgi = bolum.text; string ogrnobilgi = ogrno.text; string sehirbilgi = sehir.text;
db_komut = new OleDbCommand("update Ogrenciler set ad='" + adbilgi + "', soyad='" + soyadbilgi + "', bolum='" + bolumbilgi + "', ogrno='" + ogrnobilgi + "', sehir='" + sehirbilgi + "' where ad='"+adbilgi+"'", db_baglanti); db_komut.executenonquery(); Response.Write("Öğrenci Güncellendi"); protected void ListBox1_SelectedIndexChanged(object sender, EventArgs e) string isim = ListBox1.Text; db_komut = new OleDbCommand("Select * from Ogrenciler where ad like '%" + isim + "%'", db_baglanti); OleDbDataReader alinan_veri; alinan_veri = db_komut.executereader(); while (alinan_veri.read()) ad.text = alinan_veri["ad"].tostring(); soyad.text = alinan_veri["soyad"].tostring(); bolum.text = alinan_veri["bolum"].tostring(); ogrno.text = alinan_veri["ogrno"].tostring(); sehir.text = alinan_veri["sehir"].tostring();