Kayıt
4 Kasım 2007
Mesajlar
275
Beğeniler
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"))
%>
 
Yukarı Alt