sadık özdoğan Moderatör
ÜYELİK TARİHİ : 12/09/09 YER : ANKARA Yaş : 33 MESAJLAR : 872 Rep Gücü : 22 Tecrübe Puan'ı : 2546 Doğum tarihi : 10/04/91 RUH HALİ : Hangi Takımlı : galata saray İş/Hobiler : bilgisayarla ilgilenmek, şiir yazmak. Lakap : efsane Hakkımda : ben sadık özdoğan: lise 3 öğrencisiyim 18 yaşındayım.
| Konu: asp'de veri tabanı işlemleri Çarş. Mart 09, 2011 2:16 pm | |
| veritabanı dosyası burada(8,15 kb). Bu dosya C:\inetpub\wwwroot\db konumunda olsun. Sıra geldi script dosyalarımıza.
KAYITLAR.ASP
Ö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.
Kod1. 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</a></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</a></td> <td><a href="kayit_sil.asp?id=<%= kset("id") %>">sil</a></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. Kod2. kayit_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</a> <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. Kod3. 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</a>" %>
KAYIT_YENI.ASP
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. Kod4. 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 %>
KAYIT_SIL.ASP
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. Kod5. 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")) %>
| |
|