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.
|