1. Reklam


    1. joysro
      ledas
      jungler
      keasro
      zeus
      karantina

Veri Tabanı İşlemleri


  1. LosCules

    LosCules Tanınıyorum rank8

    Kayıt:
    4 Kasım 2007
    Mesajlar:
    275
    Beğenilen Mesajlar:
    0
    Ödül Puanları:
    0
    Veri Tabanına Bağlanma, Veri Okutma, Veri Silme, Veri Ekleme Ve Veri Güncelleme İşlemleri


    öncelikle Merhaba, Dersler Arasında Dolaşırken Asp Bölümünün Boş Olduğunu Farkettim. Bunun üzerine İlk Adımı Atmaya Karar Verdim. Bu İlk Dersimde Asp'nin Temeli Olan VeriTabanı İşlemlerini Anlatmaya çalışacağım.

    öncelikle kayıtları listeleyeceğimiz bir arabirim inşa ettik. kayitlar.asp ye göz atalım. Bu ve diğer ASP dosyaları C:\inetpub\wwwroot\ konumunda olsun.

    kayitlar.asp


    <%
    Veri_yolu = Server.MapPath("db/kisiler.mdb")
    Bcumle = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Veri_yolu
    Set bag = Server.Createobject("ADODB.Connection")
    bag.Open (Bcumle)
    Set kset = bag.execute("SELECT * FROM kisiler")
    %>
    <% i=1 %>
    <p><a href="kayit_yeni.asp">Yeni Kayıt[/url]</p>
    <table border=1>
    <tr>
    <th>#</th>
    <th>Ad</th>
    <th colspan=2>Eylemler</th>
    </tr>
    <% Do While Not kset.eof %>
    <tr><td><%= i %></td>
    <td><%= kset("ad") %></td>
    <td><a href="kayit_duzenle.asp?id=<%= kset("id") %>">düzenle[/url]</td>
    <td><a href="kayit_sil.asp?id=<%= kset("id") %>">sil[/url]</td></tr>
    <% kset.movenext %>
    <% i = i + 1 %>
    <% Loop %>
    </table>
    <%
    kset.Close
    Set kset = Nothing
    bag.Close
    Set bag = Nothing
    %>


    Bu script, basit bir şekilde /db alt dizinindeki kisiler.mdb ile bağlantı kuruyor. kisiler tablosundan aldığı tüm kayıtların "ad" alanındaki değerlerini yazdırıyor. Ve de her bir kayıt için düzenleme ve silme linkleri oluşturuyor. Linkler oluşturulurken sorgu stringi içinde eylemi gerçekleştirecek script dosyasına "id" anahtarıyla kaydın "id" alanındaki değeri gönderiliyor. Tabi bunlar kayıtseti sonunda duracak bir döngü içerisinde yapılıyor. Veriler tablo hücrelerine döngüyle döküldüğüne de dikkat ediniz.



    KAYIT_DUZENLE.ASP ve KAYIT_GUNCELLE.ASP
    Kayıtların listelendiği kayitlar.asp de her kaydın yanında bir düzenle bağlantısı var. Bu bağlantı ile duzenle.asp dosyasına işaret ediliyor. Bir de sorgu cümlesi konuluyor yanına: "duzenle.asp?id=XX" Buradaki XX yerine geçerli kaydın id alanındaki değeri yazılıyor.
    Şimdi kayıt_duzenle.asp ye bakalım.


    kayıt_duzenle.asp


    <%
    id = Request.Querystring("id")
    If Not Isnumeric(id) Or Len(id)=0 Then
    mesaj "Yanlış Sorgu Cümlesi"
    End If
    '-----------------------------------------------------------------------------------
    Veri_yolu = Server.MapPath("db/kisiler.mdb")
    Bcumle = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Veri_yolu
    Set bag = Server.Createobject("ADODB.Connection")
    bag.Open (Bcumle)
    Set kset = bag.execute("SELECT * FROM kisiler where id =" & id)
    If kset.eof Then
    mesaj "Olmayan Kayıt İstendi"
    End If
    %>
    <a href="kayitlar.asp">Kayıtlar[/url]

    <form method=post action="kayit_guncelle.asp">
    <table border=1>
    <tr>
    <td>Ad</td>
    <td><input type="text" name="ad" value="<%= kset("ad") %>"></td>
    </tr>
    <tr>
    <td>Teleon</td>
    <td><input type="text" name="telefon" value="<%= kset("telefon") %>"></td>
    </tr>
    <tr>
    <td>Email</td>
    <td><input type="text" name="email" value="<%= kset("email") %>"></td>
    </tr>
    <tr>
    <td>ICQ</td>
    <td><input type="text" name="icq" value="<%= kset("icq") %>"></td>
    </tr>
    <tr>
    <td>Adres</td>
    <td><input type="text" name="adres" value="<%= kset("adres") %>"></td>
    </tr>
    <tr>
    <td>Doğum Günü</td>
    <td><input type="text" name="dgunu" value="<%= kset("dogum_gunu") %>"></td>
    </tr>
    <tr>
    <td></td>
    <td><input type="submit" value="güncelle"></td></tr>
    </table>
    <input type="hidden" name="id" value="<%= kset("id") %>">
    </form>

    <%
    kset.Close
    Set kset = Nothing
    bag.Close
    Set bag = Nothing
    %>
    <%'--------------------------%>
    <% Sub mesaj(msg) %>
    <p><%= msg %></p>
    <% response.end %>
    <% End Sub %>
    <%'--------------------------%>

    Aslında bu scriptin de öncekinden pek farkı yok. sadece sorgu cümlesinden "id" anahtarındaki değeri alıyor. Ve bu id değerini kullanarak tablodan tek kayıt seçiyor. ("SELECT * FROM kisiler where id =" & id). Seçtiği kayda ait değerleri ise form input alanlarına döküyor. Formun action özelliğine ise kayit_guncelle.asp yazılmış. Güncelleme işini bu dosyaya havale ediyoruz.

    kayit_guncelle.asp


    <%
    ad = Request.Form("ad")
    id = Request.Form("id")
    telefon = Request.Form("telefon")
    dgunu = Request.Form("dgunu")
    icq = Request.Form("icq")
    email = Request.Form("email")
    adres= Request.Form("adres")
    '-----------------------------------------------------------------------------------
    Veri_yolu = Server.MapPath("db/kisiler.mdb")
    Bcumle = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Veri_yolu
    Set bag = Server.Createobject("ADODB.Connection")
    bag.Open (Bcumle)
    Set kset = Server.Createobject("ADODB.Recordset")
    sql = "SELECT * FROM kisiler WHERE id = " & id
    kset.open sql, bag, 1, 3
    kset("ad") = ad
    kset("telefon") = telefon
    kset("email") = email
    kset("adres") = adres
    kset("icq") = icq
    kset("dogum_gunu") = dgunu
    kset.update
    kset.Close
    Set kset = Nothing
    bag.Close
    Set bag = Nothing
    Response.Write "<p>Kayıt Yapıldı.. Başka bir arzunuz? "
    Response.Write "<p><a href=""kayitlar.asp"">Kayıtlar[/url]"
    %>

    kayitlar.asp de Yeni Kayıt linkinde işaret edilen kayit_yeni.asp... Yaptığı iş şu. Veritabanına bağlanıp ilgili tablodan oluşturduğu kayıt seti içine yeni bir kayıt ekliyor. Kayıtsetini güncelliyor, "id" alanındaki değeri bir değişkende saklıyor. nesneleri kapatıyor. Ve de kayit_duzenle.asp dosyasına "id" anahtarıyla yeni eklenen kaydın "id" alanındaki değeri gönderiyor. Yani bu sayfa sadece işlem yapıyor. Kullanıcıya gözükmeden işlemi tamamlayıp düzenleme sayfasına yöneliyor.

    kayit_yeni.asp

    <%
    response.buffer=true
    Veri_yolu = Server.MapPath("db/kisiler.mdb")
    Bcumle = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Veri_yolu
    Set bag = Server.Createobject("ADODB.Connection")
    bag.Open (Bcumle)
    Set kset = Server.Createobject("ADODB.Recordset")
    sql = "SELECT * FROM kisiler"
    kset.open sql, bag, 1, 3
    kset.addnew
    kset.update
    id = kset("id")
    kset.Close
    Set kset = Nothing
    bag.Close
    Set bag = Nothing
    Response.Redirect "kayit_duzenle.asp?id=" & id
    %>



    Sorgu cümlesindeki "id" anahtarından alınan id değeri kullanılarak şu SQL ifadesi oluşturuluyor.
    DELETE FROM kisiler WHERE id = " & id . Ve bu ifade bağlantı tarafından yürütülüyor (execute). Sonuçta id si alınan kayıt tablodan silinmiş oluyor. Kullanıcı da geldiği sayafaya yönleniyor.

    kayit_sil.asp


    <%
    response.buffer = True
    id = Request.Querystring("id")
    '-----------------------------------------------------------------------------------
    Veri_yolu = Server.MapPath("db/kisiler.mdb")
    Bcumle = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Veri_yolu
    Set bag = Server.Createobject("ADODB.Connection")
    bag.Open (Bcumle)
    sql = "DELETE FROM kisiler WHERE id = " & id
    Set kset = bag.execute(sql)
    Set kset = Nothing
    bag.Close
    Set bag = Nothing
    Response.Redirect (Request.ServerVariables("HTTP_REFERER"))
    %>