ASP'de Veri Tabanına Veri Girme ve Düzenleme
Merhaba bu makalemde sizlere Asp de veri tabanına veri girme ve girilen verileri düzenleme metotlarından bahsedeceğim. İlk yapmamız gereken elbette bir veri tabanı hazırlamak Örnek bir veri tabanı hazırlamak için MS Access açıp yeni bir tablo hazırlamak
İki Adet Tablo oluşturuyoruz Biri Admin adında Altında
-User_ID
-Password
Adında iki adet alan oluşturuyoruz ki veriyi düzenleyecek girecek kişinin yetkili olması için aslında Kontrol panallerin çalıştığı yöntemler bu şekilde olduğu için buraya da değinelim dedim. Yani Şifresi olan veri girebilsin
İkinci Tablomuzda rec adında olsun Altında
-ID (Veri Türü otomatik sayı olacak)
-name
-nami (Veri Türü sayı )
Örnek Resim
Şimdi sayfamızı oluşturmaya başlayabiliriz.
İlk önce ayarlar için cn.asp adında bir dosya hazırlıyoruz
İçindeki kodlar
<% ' veri tabani baglati dim Conn ' veri tabani yolu yolumuz Conn = "Provider=Microsoft.JET.OLEDB.4.0; Data Source = C:\Inetpub\wwwroot\pc\admin\db.mdb" %>
Kodları yazıp kaydediyoruz. Tabi farklı yöntemlerle de veri tabanına bağlantı sağlayabilirsiniz. Kısa ve öz şekilde bir veri tabanı bağlantısı sağladık biz sadece
Daha sonra login sayfamızı hazırlayalım
Login.asp içindeki kodlar
<html> <head> <title>Login</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <!--#include file="cn.asp"--> <% dim username dim pass dim msg dim checked username = Request.Form("username") pass = Request.Form("password") if request.Form("Giris")="Giris" then dim rs dim cn set cn = server.CreateObject("Adodb.Connection") set rs = server.CreateObject("Adodb.Recordset") cn.Open conn rs.open "Select * From Admin Where User_ID='" & username & "'",cn if not rs.eof then if pass = rs.fields("Password") then session("AdminOk") = "true" session("Username") = username response.Redirect("admin.asp") 'sifre dogruysa giris yapacak sayfa else msg = ("Şifre Yanlış") end if else msg = ("Kullanıcı Adı yanlış") end if rs.Close cn.Close set rs = nothing set cn = nothing End if ‘cikis yapmak icin if request.QueryString("cmd") = "logout" then session.Abandon() End if %> <strong>Giriş </strong> <p>Kullanıcı Adı ve Şifre Girişi</p> <form name="form1" method="post" action=""> <p><%=msg%></p> <table width="48%" border="1" cellpadding="1" cellspacing="1" bordercolor="#000000"> <tr> <td width="31%" bgcolor="#CCCCCC"><strong>Kullanıcı Adı</strong></td> <td width="69%"><input name="username" type="text" id="username"></td> </tr> <tr> <td bgcolor="#CCCCCC"><strong>Şifre</strong></td> <td><input name="password" type="password" id="password"></td> </tr> <tr> <td bgcolor="#CCCCCC"> </td> <td><input type="submit" name="Giris" value="Giris"></td> </tr> </table> <p> </p> </form> <p></p> </body> </html>
<!--#include file="cn.asp"-->
Bu kodla veri tabanı bağlantısını sağlıyoruz yani her sayfada veri tabanın için kod yazmaya gerek yok. Her sayfanın başına yerleştirdiğimiz kodla işimizi kolaylıkla halledebiliriz.
Şimdi Gelelim Admin sayfamızı oluşturmaya admin.asp için yazacağımız kodlar
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <%if not session("AdminOk")="true" then response.Redirect "login.asp" %> <html> <head> <title>Admin</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <h4 align="center"><font face="Georgia, Times New Roman, Times, serif">Admin</font></h4> <div align="center"> <table width="58%" border="1" cellpadding="1" cellspacing="1" bordercolor="#000000"> <tr> <td width="3%" bgcolor="#CCCCCC"> </td> <td width="97%" bgcolor="#CCCCCC"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Baba Menü </strong></font></td> </tr> <tr> <td> </td> <td> </td> </tr> <tr> <td> </td> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="new.asp">Yeni Ekle</a></font></td> </tr> <tr> <td> </td> <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="list.asp">Düzenle</a></font></td> </tr> <tr> <td> </td> <td height="19"> </td> </tr> <tr> <td bgcolor="#CCCCCC"> </td> <td height="19" bgcolor="#CCCCCC"><a href="login.asp?cmd=logout"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Çıkış</strong></font></a></td> </tr> </table> </div> </body> </html>
<%if not session("AdminOk")="true" then response.Redirect "login.asp" %> bu kodla admin onayı olup olmadığını öğreniyoruz eğer varsa durmak yok yola devam eğer yoksa login sayfasına gidip onay almasını yani şifreyi girmesi gerektiğini bildiriyor. Çıkışta da
if request.QueryString("cmd") = "logout" then session.Abandon() End if
Bu komutla veri onayımızı siliyorduk ve çıkışımızı sağlıyoruz. Yani bilgisayar bizi sunucuyu bizi tanımaz hale getirtiyoruz.
İlk başta şifre onayı var gördüğünüz gibi ve sonrada hemen veri tabanı bağlantısını devreye soktuk peki neden admin.asp de veri tabanı bağlantısı devreye sokmadık diye soracak olursanız çünkü orada veri tabanına bağlantı kurmak gereksiz bir veri çekme mevzusu yada kaydetme mevzusu olmadığından sunucuyu yormamak için eklemedik.
Gelelim kayıt girme mevzusuna. İlk önce new.asp diye bir sayfa açalım ve içine şu kodları yazalım.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <%if not session("AdminOk")="true" then response.Redirect "login.asp" %> <!--#Include file="cn.asp"--> <% dim saved dim cat dim msg cat = request.Form("adi") 'kaydin alindigi kutunun adi cat1 = request.Form("nami") if request.Form("submit")<>"" then call SaveRecord() End if if request.QueryString("id")<>"" then call GetRecord() End if Sub SaveRecord() dim rs dim cn set cn = server.CreateObject("Adodb.Connection") set rs = server.CreateObject("Adodb.Recordset") cn.Open conn if request.Form("id")="" then rs.open "Select * From rec",cn,2,3 'burda kaydı ekleyeceegimiz tabloyu seciyoruz tablomuzun adi rec rs.addnew rs.fields("name") = cat ' veriyi cekecek olan kutucuk adi rs.fields("nami") = cat1 rs.update msg = "Kaydınız Kayıt Edildi"'kayit eklendiginde verecegi cevap saved = true else rs.open "Select * From rec Where ID=" & request.Form("id"),cn,2,3 rs.fields("Name") = cat rs.fields("Nami") = cat1 rs.update msg = "Kayıt Güncellendi" 'kaydi yeniledigimizde verecegi cevap saved = true End if rs.close cn.close set rs = nothing set cn = nothing End Sub Sub GetRecord() dim rs dim cn set cn = server.CreateObject("Adodb.Connection") set rs = server.CreateObject("Adodb.Recordset") cn.Open conn rs.open "Select * From rec Where ID=" & request.QueryString("id"),cn if not rs.eof then cat = rs.fields("name") cat1 = rs.fields("nami") End If rs.close cn.close set rs = nothing set cn = nothing saved = false End Sub %> <html> <head> <title>Ekle</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <p><strong>Yeni Bişi Ekle </strong></p> <p> <%if not saved then%> </p> <form action="" method="post" name="form1"> <table width="56%" height="54" border="1" cellpadding="1" cellspacing="1" bordercolor="#000000"> <tr> <td width="37%" height="23" bgcolor="#CCCCCC"><strong>Eklenecek İsim</strong></td> <td width="63%"><input name="adi" type="text" id="name3" value="<%=cat%>"><br><input name="nami" type="text" id="name3" value="<%=cat1%>"> <td width="63%"> </td> </tr> <tr> <td height="26"> </td> <td><input type="submit" name="Submit" value="Ekle"> <input type="reset" name="Submit2" value="Temizle"> </td> </tr> </table> <input name="id" type="hidden" id="id" value="<%=request.querystring("id")%>"> </form> <p> <% end if response.Write(msg) %> </p> <p><a href="list.asp?mcat=<%=request.querystring("id")%>">Kayıtlar </a></p> <p> </p> <p>Geri <a href="admin.asp">Baba Menü</a></p> </body> </html>
Şöyle bir sayfa oluşmuş olacak
Geri açıklamalarda kodlarda yazılı zaten
Şimdi girilen kayıtların Listelenme ve Silme olayı var bunun içinde list.asp diye bir dosya oluşturalım ve içerisine şu kodları yazalım.
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%> <%if not session("AdminOk")="true" then response.Redirect "login.asp" %> <!--#Include file="cn.asp"--> <html> <head> <title>Liste</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-9"> <link href="style.css" rel="stylesheet" type="text/css"> </head> <body> <p><strong>Liste</strong></p> <p> </p> <% dim rs dim cn dim msg set cn = server.CreateObject("Adodb.Connection") set rs = server.CreateObject("Adodb.Recordset") cn.Open conn if request.Form("Submit")="Sil" then Call Del() 'burda silinecek verilerin gonderilecegi donguye yonlendiryoruz yani sil butonuna basinca ne yapacagini anlatan koda gonderiyoruz End if Sub Del() 'yapacagi gorevi soyleyelim dim num dim i dim Total_Del num = Request.Form("num") for i = 1 to num id = Request.Form("d" & i) if id<>"" then rs.Open "Delete From rec Where ID=" & id, cn Total_Del = Total_Del + 1 end if next msg = Total_Del & " Kayit Silindi" 'kaydi sildi ve silinen kayda verilecek cevabida verelim total da silinen verilerin adetinide yazdirdik End Sub rs.open "Select * From rec", cn %> <p> <% response.Write(msg) if not rs.EOF then %> </p> <form name="form1" method="post" action=""> <table width="44%" border=1 cellpadding=1 cellspacing=1 bordercolor="#000000"> <tr bgcolor="#CCCCCC"> <td width="4%"> </td> <td width="96%"><strong>Kayıtlar</strong></td> </tr> <%while not rs.EOF n = n + 1 %> <tr> <td width="4%"> <input id=checkbox1 type=checkbox name=d<%=n%> value="<%=rs.Fields("id")%>"> </td> <td><a href="new.asp?id=<%=rs.Fields("ID")%>"><%=rs.Fields("Name")%></a> <%=rs.Fields("Nami")%></td> </tr> <% rs.MoveNext wend 'bu kodla listeliyoruz dosyalari %> <tr> <td colspan="2"> <input type="hidden" name="num" value="<%=n%>"> <input id=submit type=submit value=Sil name=submit> </td> </tr> </table> </form> <p> <% else Response.Write "Kayıt Yok ki" end if rs.Close cn.Close %> </p> <p> </p> <p>Git <a href="admin.asp">Baba Menü</a></p> </body> </html>
Yine ilk başta veri tabanına bağlantıyı ve şifreyi istedik. Listelediğimiz kayıtlara
<td><a href="new.asp?id=<%=rs.Fields("ID")%>"><%=rs.Fields("Name")%></a> <%=rs.Fields("Nami")%></td>
Birinci sütuna link verdik ama ikinci sütuna link vermedik isterseniz ona da link verebilirsiniz. Birinci sütuna verdiğimiz linke verinin düzenlenmesi için olanak sağladığımız bölüme yönlendiriyoruz. Yani bu adrese yönlendiriyoruz new.asp?id= rs.Fields("ID")%> id sütunundaki kaydı çekiyoruz veri girdiğimiz kaydın numarası bu otomatik sunucu kedisi giriyor.
New.asp de
else rs.open "Select * From rec Where ID=" & request.Form("id"),cn,2,3 rs.fields("Name") = cat rs.update msg = "Kayıt Güncellendi" 'kaydi yeniledigimizde verecegi cevap saved = true End if
Bu kodla girdiğimiz veriyi güncellememize imkan sağlıyorduk. Şimdi bir öğrendiklerimize bakalım. Sayfalara giriş için şifre istemesi, Veri tabanına kayıt girme ve veri tabanındaki kayıtları listesi. Girilen verilerin düzenlenmesi ve silinmesi gibi konuları gördük.
Ek olarak neler yapabilirsiniz: Mesela admin tablosuna yetki vererek başka adminler oluşturabilirsiniz. Başka tablolar açarak kayıt oluşturabilirsiniz. Asp de kayıt oluşturmak için çeşitli yöntemler var bu kullanılan yöntemlerden biri sadece.
Hit: 3665
Yazar: x-files