Asp ile veritabanından veri çekmek

Asp ile veritabanından veri çekmek ve ekrana yazdırmak için aşağıdakileri sırasıyla uygulayalım.
İlk önce veritabanımızda aşağıdaki gibi tablo olduğunuz varsayalım
server : localhost
veritabani adı : eyurtsever
kullanıcı : enver
şifre : 123456
——————————————
tablomuzda şöyle olsun:
tablo adı : tblHaber
alanlar : id, baslik , detay ,resim

Öncelikle veritabanı connection string imizi yazalım:(SQL veritabanı için)

<% Set baglanti    = Server.CreateObject("Adodb.Connection") baglanti.Open "driver={SQL Server};server=localhost ;uid= enver ;pwd=123456;database=eyurtsever" %>

baglantimizi oluşturduk ve şimdi tablodan veri çekelim
 
eğer en son eklenen veriyi çağırmak istiyorsak

<% Set rs = baglanti.execute("select * from tblHaber order by id desc") %>

 
ilk eklenen veriyi çağırmak istiyorsak

<% Set rs = baglanti.execute("select * from tblHaber order by id asc") %>

 
Eğer baş harfine göre çağırmak istiyorsak

<% Set rs = baglanti.execute("select * from tblHaber order by baslik asc") %>

 
Kayıt setimizi de oluşturduk. Şimdi ekrana yazdıralım
Eğer sadece bir tane kayıt getirmek istiyorsak

Haber Başlığı : <%=rs("baslik")%>  <br />
Haber Detayı : <%=rs("detay")%>

 
Bütün kayıtları getirmek istiyorsak döngüye sokmamız gerekiyor:

<% do while not rs.eof %>
Haber Başlığı : <%=rs("baslik")%>  <br />
Haber Detayı : <%=rs("detay")%>
<% rs.movenext:loop %>

 
Belirli sayıda kayıt getirmek istiyorsak
1. yol :
sorgumuza ” top ” kelimesini ekleriz:

"select top(5) * from tblHaber order by id desc"

2. yol

<% i=0
do while not rs.eof and i<5 i=i+1 %>
Haber Başlığı : <%=rs("baslik")%>  <br />
Haber Detayı : <%=rs("detay")%>
<% rs.movenext:loop %>

 
ve son olarak bağlantımızı ve kayıt setimizi kapatmayı unutmuyoruz. Açık bırakırsak veritabanımız loglarla zamanla şişecektir.

<% baglanti.close set baglanti = nothing rs.close set rs = nothing %>

 

You may also like

12 yorum

  1. iyi günler günlerce uğraşmama rağmen asp ile mssql veri çekmeyi bir türlü beceremedim
    db bağlantım ve tabloya bağlantım tamam sorun yok ama kayıt çekmeye çalıştığım zaman hata veriyor
    <%
    Set baglanti = Server.CreateObject(“Adodb.Connection”)
    baglanti.Open = “Driver={SQL Server Native Client 10.0};Server=xxx.xx.xx.xx;Database=dbadi; Uid=kullaniciadi;Pwd=sifre;”
    set rs = baglanti.execute(“select * from siteler order by id desc”)
    do while not rs.eof
    rs(“sitead”)
    rs.movenext:loop
    rs.close
    set rs = nothing
    baglanti.close
    set baglanti = nothing
    %>
     
    rs(“sitead”) kaldırdığım da sorun yok ama eklediğim de kodlar hata veriyor arkadaşlar sorun ne olabilir sizde

  2. ilk önce çok güzel anlatmışsınız. Ancak benim sorun diyelim son iki veriyi listele dediğimizde 1.yol ve 2. yol dediğimiz yerleri kullanacağız. Ancak son iki veriden sonrakileri listele dersek o nasıl olacak. Şimdiden çok teşekkür ederim.

    1. kayıtları nasıl listelediğinizi bilmiyorum ama listelerken koşul koyabilirsiniz.
      öncelikle sorgunuz order by desc olmalı.
      eğer for ile listeliyorsanız.
      döngünün içine
      if not (i=0 or i=1) then
      end if
      şeklinde ilk 2 kayıtı göstermeyebilirsiniz.

  3. Merhaba, sessionu sayfaların her durumunda veri çekmek amacıyla kullanmak istiyorum. Oturum açılmamışsa diğer sayfalarda kullanılmasın. Bir adet bağımsız longin aspx formum var buradan sqlde tanımlı kullanıcı adı ve şifre ile giriş yapılıyor. giriş başarılı olduysa kullanıcı adı session olarak id tanımında tutuluyor.
    Ancak datasetten session idsine göre veri çekemiyorum.
    DataSetTableAdapters.TBL_BILGITableAdapter dt = new DataSetTableAdapters.TBL_BILGITableAdapter();
    ad.Text = dt.BilgiGetir(Session[“id”].ToString)[0].ADI;
    şeklinde ilk verimi ad tanımlı textboxa çekmeyi amaçladım ancak çekemedim. Normalde sessionu bir label yada text kurusuna atıp “Session[“id”].ToString” kısmını örneğin label1.text olarak değiştirdiğimde çalışıyor. Diğer türlü neden çalışmıyor.
    Teşekkürler

  4. merhaba ben saatlertir ugraşıyorum araştırorum ama bir türlü çözüm bulamadım 🙁 ben e okul sistemini yapıyorum ve tc ile ögrenci nosunu girdiğim zaman gelen yerlerde hep en baştaki veri geliyor 🙁 bu verileride sadece örnegin bu şekilde çekiyorum ama bir kod daha olması lazım sanırımşimdi örneğin numarasını 23 tc numarasını 12345 girdiğimde access veri tabanımda bu şekilde kayıtlu olan kişilerin notlarını fln yazdırmasını istiyorum yada numarası 21 olan tcsi 654321 olan kişiyi girdiğimde bu kişinin bilgilerini yazdırmak istorum bunun kodu nedir acabaa acil yardım lütfennn burdan yazın yada mail gönderin : ysftsdln@gmail.com
    şimdiden çok teşekkürler 🙂

    1. Buraya yaptığınız sorguyu yazsaydınız daha iyi olurdu ama ben gene de yardımcı olmaya çalışayım.
      Öğrenci giriş formunuz var ve formda 2 alan var:
      1. OgrNo
      2. TCno
      Formu gönderdiğinizde kod şu şekilde olmalıdır:
      OgrNo = Request.Form(“OgrNo”)
      TCno = Request.Form(“TCno”)
      set rs = baglanti.execute(“Select * From TblOgrenci Where ogrencino = ‘ ” & OgrNo & ” ‘ and ogrencitc = ‘ ” & Tcno & ” ‘ “)
      if not rs.eof then
      response.write ” Giriş Başarılı”
      else
      response.write ” Hatalı Giriş Yaptınız”
      end if
      Not: ‘ (tırnak işareti) olan alanları kendiniz elle giriniz. Yorum kısmında değiştiriyor işaretleri.
      Eğer sorunuzu anlayabildiysem cevabı bu şekildedir. İyi Çalışmalar..

      1. siz beni anlamadınız :S şimdi ben bu forumu index.html sayfasına oluşturdum ve giriş butonuna tıkladıgında onayla.asp ye gidiyor onayla.asp sayfamda şu şekilde ;

        bu şekilde kullanıcı veri tabanındaki şifre ve tcyi dogru girdği zaman ogrenciler.asp ye gidiyor burdada işte ogrencinin adı soyadı notlarını filan yazmasını istiyorum ama işte ogrenciler.asp sayfasında örneğin ögrencinin adını çekmek için sadece ;
          şeklinde bir kod kullanıyorum ve siteyi açtıgımda ogrenciler.asp ye geldiğim zaman sadece veri tabanındaki ilk jişinin adı ve soyadını yazıyor işte ben bu ogrenciler.asp sayfasına hangi kodu yazarsam o index.html de girip onayla.asp de bunun dogru oldugunu ettiği kişinin bilgilerini yazdırabilirim 😀 karmaşık oldu acmaya çalışıyım 😀 ben şimdi şuan bu kodlarla kimin tc ve numarasını girersem girim ör. bu kodu kullandıgımda veri tabanındaki ilk kişinin soyadını yazıyor ama ben böyle olsun istemiyorum ör. 25 numaralı 123456 tc numaralı kişiyi girdiğimde o kişinin bilgilerini veri tabanından çeksin istiyorum :SSS

        1. O halde session kullanman gerek. Giriş yapan öğrencinin id’sini session(“id”)=rs(“Ogrid”) şeklinde onayla.asp de ataman gerekiyor.
          Ve bilgilerini çekerkende sorgunda where ogrid= session(“id”) şeklinde oluşturursan, giriş yapan öğrencinin bilgilerine ulaşırsın.
          Sessionlar ile ilgili bilgileri daha sonra bloğumda yazacağım ama, google da session işlemleri diye arattığında daha detaylı sonuçlar bulabilirsin.
          kolay gelsin.

  5. Merhaba ben veri tabanından resim çekmeye çalışıyorum ama bir türlü basaramadim yardımcı olabilir misiniz.

    1. resimleri klasöre kaydedip, resmin yolunu veritabanına kaydetmeniz gerekiyor.
      örnek: resmin olduğu klasör : sitem/resimler/resim1.jpg
      veritabanındaki kayıt da aynı bu şekilde olmalı : sitem/resimler/resim1.jpg
      resmi çekerken ise : Cevapla

    1. Ben burada MsSql veritabanı için connection string yazdım, access yada mysql için connection string değiştirdiğinizde aynı kodları kullanabilirsiniz.

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

This site uses Akismet to reduce spam. Learn how your comment data is processed.