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: 4022
Yazar: x-files