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">&nbsp;</td>

  <td><input type="submit" name="Giris" value="Giris"></td>

    </tr>

  </table>

  <p>&nbsp;</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">&nbsp;</td>

  <td width="97%" bgcolor="#CCCCCC"><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><strong>Baba Menü </strong></font></td>

    </tr>

    <tr>

  <td>&nbsp;</td>

  <td>&nbsp;</td>

    </tr>

    <tr>

  <td>&nbsp;</td>

  <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="new.asp">Yeni Ekle</a></font></td>

    </tr>

    <tr>

  <td>&nbsp;</td>

  <td><font size="2" face="Verdana, Arial, Helvetica, sans-serif"><a href="list.asp">Düzenle</a></font></td>

    </tr>

    <tr>

  <td>&nbsp;</td>

  <td height="19">&nbsp;</td>

    </tr>

    <tr>

  <td bgcolor="#CCCCCC">&nbsp;</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">&nbsp;</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>&nbsp;</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>&nbsp;</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%">&nbsp; </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>&nbsp;</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.

Tarih:
Hit: 2915
Yazar: x-files



Yorumlar


Siftahı yapan siz olun
Yorum yapabilmek için üye girişi yapmalısınız.