Favorilerine Ekle | Giriş Sayfan Yap | Tavsiye Et

 

Kurs Tanıtım Sayfası | Süper Üye Kimdir? | Menü Tasarımı Konulu Örnek Ders
Kod İndir| Hazır Kodlar | Makaleler| İpuçları | VB .NET Kursu | Dersler | Forum | Alt Bölümler | Servisler
    Merhaba Misafir
    anasayfa » SQL Bilgisi » Çoklu SQL
Üye Girişi
Kullanıcı Adı:  
Şifre : 
Kaydet ?
Siteden tam olarak faydalanabilmek için üye olmalısınız.
Unuttuğunuz şifrenizi öğrenebilmek için kayıt sırasında verdiğiniz Hatırlatma Cevabı'nı bilmeniz gereklidir.
Şifre hatırlatma işlevini sadece 3 defa kullanma hakkınız vardır.
Kullanıcı adını ve şifresini unutan üyelere email ile yardım verilmez.

Aktivasyon Gelmedi mi?Aktivasyon mesajınız email adresinize gelmedi mi?
Buraya tıklayarak bir kez daha aktivasyon mesajı gönderilmesini sağlayabilirsiniz.
Lütfen email hesabınızın BULK ve SPAM klasörlerini de kontrol ediniz.
Rastgele Makale

RENK PALETİ

Yazar: ömerbey
VB İLE De?işik renklerin bulunması


Webmasterlar
Sitenize Ekleyin!
Sitenizde "Son Eklenen 10 Visual Basic Yazısı"'nı göstermek ve içeriğini zenginleştirmek için buraya tıklayınız.

Vbasicmaster.com'a link verin!
Aşağıdaki minik banneri sitenize eklemek için tıklayın!

Üye Sayısı:
Ziyaretçiler nerede?
Yayın № : 253
Yayın Tar:26.04.2004
Yazar : ozkan_44
Hit :4356

Bu Yazarın Yazıları Sadece bu yazarın  göster
Bu Yazıyı Tavsiye Et

Arkadaşlar sözü fazla uzatmadan makalemize başlıyorum.

Yazdığım makalenin ne işe yaradığını anlamak için bütün işlemlerimizi örnek üzerinde anlatacağım.

Mesala, bir emlak takip programı yaptığımızı varsayalım. Bu programda arama bölümünde şu alanlar olsun.

Evin bulunduğu il, ilçe, mahalle, cadde, oda sayısı, bulunduğu kat, ısıtma sistemi, minimum genişliği, maximum genişliği, minimum fiyatı, maximum fiyatı, zemini, duvarları, türü vb. kriterleri vardır.

Bu alanlar üzerinde arama yaptığımızda aşağıdaki kodları yazmamamız gerekliydi,

Yukarıdaki örnek için form üzerinde 9 Text, olduğunu düşünürsek, şu kodları yazmamız gerekliydi.

if Text1.Text<>"" then
Data.DataSource="Select *From Ev_Bilgileri Where Il=' "+Text1.Text+"' "
End if

Yukarıdaki kodu sadece bir Alan için yazdık. Mesela, kullanıcının Oda sayısı, Bulunduğu kat, zemin alanlarını doldurduğunu varsayarsak bir çok karşılaştırma işlemi yapacağız ve tek tek SQL komutu yazacağız. Bu çok hantal ve yazması uzun süren bir işdir. Bütün olasılıklar için ayrı ayrı kodlar yapmanız gereklidir. Örneğin Form üzerinde 2 Text varsa bunun için yazmamız gereken if Bloğu 3 Adetdir.

Gelin Ispatlayalım;

Text1' in Dolu Text2' nin Boş olma olasılığı.
Text2' nin Dolu Text1' in Boş Olma olasılığı.
Text1' ve Text2' nin Dolu Olma Olasılığı.

gibi olasılıklar vardır. Form üzerinde 15 tane Text' olduğunu varsayarsak. Olabilecek Olasılıkları düşünmek bile istemiyorum. Bunun yerine birazdan anlatacağım tekniği kullanırsanız sadece bir if bloğu ile bütün işlemi halledebiliriz.

İlk önce arama formunuzda bulunacak alanları, -Veri Tabanındaki Alan Adlarının Aynısını- form_Load Olayında Global Bir dizi olarak Hazırlayınız.

' Yukarıdaki örneğimizedeki bazı alanlara göre

Dim Alanlarim(8) As String
' ------------------------------------
Form Load Olayına Şu Kodları Yazıyoruz.

Alanlarim(0)="Il"
Alanlarim(1)="Mahalle"
Alanlarim(2)="Cadde"
Alanlarim(3)="Oda"
Alanlarim(4)="Kat"
Alanlarim(5)="isinma"
Alanlarim(6)="Zemin"
Alanlarim(7)="Duvar"
Alanlarim(8)="Tur"

' ----------------------------------

' *****************************************************

' Form üzerine yerleştirdiğiniz bütün Textler ' dizi Şeklinde Olmalı

' *****************************************************

' Ara Butonu_Clik Olayına Şu Kodları Yazıyoruz.

Dim i As Byte
Dim SQL As String
Dim Son_SQL as String

' ------------------------------------------
SQL="Select *From Ev_Bilgileri Where "
' ------------------------------------------

For i= 0 To Text1.Count-1
if Text1.Text(i)<>"" then
SQL=SQL+Alanlarim(i)+"=' "+Text1(i).Text+"' And "
end if
Next i

' -----------------------------------------
Son_SQL=Mid(SQL,1,(Len(SQL)-5))
' -----------------------------------------
Data1.DataSource=Son_SQL

' *******************************************************************

Gördüğünüzü gibi arkadaşlar Tek Bir if Bloğu İle Bütün Olasılıkları denedik. Artık Sorgumuz kullanılmaya hazırdır.

Makalemi düzenlememde yardımcı olan, Ramazan Hocama , Yunus Arkadaşıma Sonsuz saygılar sunarım.

Özkan ÖZDEMİR
Bilgisayar Programcısı




Yorumlar, eklemeler ve düşünceler
        bu makaleyi okumadan önce basit bir sorgu için yüzlerce satır şart yazıyordum.
teşekkürler. yeni makalelerini bekliyorum.


   yunus_pe44, Tuesday, April 27, 2004
   hocam güzel akıl etmişsin ama neden Son_SQL ifadesiyle mevcut SQL komutunun son 5 karakterini attığını anlamış değilim. Senin for döngüsü fazladan bir AND ekliyor desek Bir karakterde boşluk için olsa (ki bu önemli değildir çoğu zaman) (3+1=) 4 karakter atman lazımdı.. ??

   aavci, 1.5.2004
   Son SQL ifadesinde 5 karakter atmamızın nedeni AND ' in başında ve sonunda boşluk olduğu için 5 karakter çıkarmak gerekir.

   ozkan_44, 10.05.2004 10:41
   üstadım ben dün bir sorgu yaptım 5 alanlı tam 130 satır tuttu ve hala sorgumda eksiğim var çünkü hata veriyor if end if blokları arasında kayboldum senin bu makaleni ele alıp sorgumu tekrar gözdan geçireceğim teşekkür ediyorum

her şey gönlünce olsun

   vedomer, 10.07.2004 08:32
   mehmet beybenimki yorum değil ancak cevaplarsanız size sorum var; bir veritabanı yapmak istiyorum ancak problemim iki tabloda iki alanım var bu alanlardan birinin toplamımı almak istiyorum fakat toplam veriler tekrarlanan veriler kadar çarpılarak alınıyor bu sorunu nasıl giderebilirim.

   MEHMET32544, 21.09.2004 13:53
© Hakan Ersöz 2000-2013| Üyelik Sözleşmesi | | Ödeme Bildirimi
Sitemizden yenilikleri hemen öğrenin, pop upları engelleyin, chat yapın... ToolBarımızı indirin:
Vasicmaster Toolbar'ı indirin