Ceviz Forum

Geri Dön   Ceviz Forum > Programlama > Visual Basic

Cevapla
 
LinkBack Seçenekler
Eski 07/04/2007, 11:26   #1 (permalink)
Üye
 
Üyelik Tarihi: 05/2006
Mesaj: 55
Varsayılan 3 Listbox Arasında ilişki

Arkadaşlar merhaba, forumda baya araştırma yaptım ve buna benzer bir kaç konu buldum fakat farklı kategorilerdeydi. O yüzden bu konuyu açma gereği duydum...

Ms Visual Studio 2005 ile bir .net web sayfası hazırlıyorum ve dil olarak Visual Basic kullanıyorum...

Yapmak istediğim şey 3 List Box arasında ilişki kurmak.
*İlk listbox ta Kategoriler
*İkinci Listbox ta alt gruplar
*Üçüncü Listbox ta Markalar

olacak...

Sayfa load edildiğinde bütün Kategoriler, Alt Gruplar ve Markalar listelenecek daha sonra mesela;

>Kategorilerin olduğu listbox tan Telefonlar a tıkladım;
>Tıkladığım zaman 2. listbox ta sadece Telefon çeşitleri çıkacak (telsiz telefon,cep telefonu,kablolu telefon gibi ) , ordan da cep telefonu tıkladığım zaman sadece cep telefonu markaları 3. listbox da listelenecek...

Daha sonra ürün bul button una bastığım zaman ( 1.ListBox=Telefonlar > 2.ListBox= Cep telefonları > 3. Listbox= Nokia ) Tüm nokia telefonları listeleyecek...

Olayın mantığı tamam ama veri tabanı çok uğraştırıyor, yardımcı olacak arkadaşlar olursa sevinirim...
Kirkk hatta değil   Alıntı Yaparak Yanıtla
Eski 07/04/2007, 11:44   #2 (permalink)
Uye
 
epic Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 03/2004
Mesaj: 677
Varsayılan

Soyle basit bir tablo yapisi kurabilirsiniz:

Kod:
Id   Level   ParentRef   Name
----------------------------------------------
1    1       0           Telefonlar
2    1       0           Bilgisayarlar
3    1       0           Televizyonlar
4    2       1           Telsiz telefonlar
5    2       1           Cep telefonları
6    2       1           Kablolu telefonlar
7    3       5           Nokia
8    3       5           Siemens
9    3       5           Sony-Ericsson 
epic hatta değil   Alıntı Yaparak Yanıtla
Eski 07/04/2007, 11:53   #3 (permalink)
Uye
 
epic Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 03/2004
Mesaj: 677
Varsayılan

Sorgularınızda suna benzer olabilir:

2. ListBox (Telefon Cesitleri)

Kod:
SELECT Id, Name FROM TabloAdi WHERE Level=2 AND ParentRef=5
3. ListBox (Telefon Markalari)

Kod:
SELECT Name FROM TabloAdi WHERE Level=3 AND 
ParentRef={2. ListBox'tan Sececeginiz Telefon Cesitinin Id'si}
epic hatta değil   Alıntı Yaparak Yanıtla
Eski 07/04/2007, 11:57   #4 (permalink)
Üye
 
Üyelik Tarihi: 05/2006
Mesaj: 55
Varsayılan

Benim kurduğum tam bunun aynısını, tek tabloda olayı çözeceğiz sanırım ama asıl kafamı yoran yer 1. listbox tan telefonlara tıkladığım zaman öyle bir sql cümlesi yazmalıyım ki otomatik olarak telefonlarla bağlantılı alt grubu listelesin, buna özel sql cümlesi yazılır...

select name from tblStok where ParentRef = 1

direk telefon çeşitlerini çeker listeden burası tamam basit bir cümle ama sadece telefonlara özel, bunu listbox.SelectedItem yada Index le öyle bir yazmam lazım ki birisini seçtiğim zaman onla bağlantılı level i parentRef i kendi seçmesi ...

Çünkü öteki türlü bütün ürünler için ayrı ayrı sql cümlesi girmem gerekecek. Telefonları sadece örnek olsun diye vermiştim. Bilgisayar parçaları , hobi/oyun ürünleri, network ürünleri, buna benzer bir sürü kategori alt kategori ve marka olacak ...

Dediğin gibi sadece telefon olsa öyle yapılırdı ama ürün yelpazesi geniş olunca hepsi için sql kodu yazmak gerekecek, işte bunun için daha kullanışlı bir veri tabanı yada daha iyi bir visual basic bilgisi gerekecek, aslında kolay olabilir bu yapmaya çalıştığım ama işte herşey tecrübeyle yavaş yavaş ısınıyorum...


Teşekkürler Epic
Kirkk hatta değil   Alıntı Yaparak Yanıtla
Eski 07/04/2007, 12:13   #5 (permalink)
Üye
 
Üyelik Tarihi: 05/2006
Mesaj: 55
Mutsuz

Sanırım şöyle bir şey olacak ;

Bir kategoriye tıkladığım zaman bunun id sine göre 2.listbox ta alt grupları listelenecek, ordan da bir ürün çeşidine tıkladığım zaman onun id (ve artık ürün koduna yada kategori koduna göre mi orası tam oturmadı kafamda) numarasına göre bağlantılı markalar listelenecek...


Kod:
select name from tblStok where level = ' " & listbox1.SelectedIndex & " ' and parentRef = ' " & listbox1.selectedIndex " '
Mesela şuna benzer bir sql cümlesi bütün işlemleri otomatik yapacak, anlatabilmek için yazdım, yanlış bir cümle büyük ihtimal...

Bu kodu Protected Sub ListBox1_SelectedIndexChanged e yazarız

listelemesinide Listbox2 içine yaparız...

aynı işlemleri listbox 2 içinde yapınca problem çözülmüş olur sanırım...

Yardımlarınızı bekliyorum arkadaşlar...
Kirkk hatta değil   Alıntı Yaparak Yanıtla
Eski 07/04/2007, 12:45   #6 (permalink)
Uye
 
epic Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 03/2004
Mesaj: 677
Varsayılan

Alıntı:
epic, mesajından alıntı: Mesajı Gör
Sorgularınızda suna benzer olabilir:

2. ListBox (Telefon Cesitleri)

Kod:
SELECT Id, Name FROM TabloAdi WHERE Level=2 AND ParentRef=5
3. ListBox (Telefon Markalari)

Kod:
SELECT Name FROM TabloAdi WHERE Level=3 AND 
ParentRef={2. ListBox'tan Sececeginiz Telefon Cesitinin Id'si}
Kod:
SELECT Id, Name FROM TabloAdi WHERE Level=2 AND ParentRef=5
kismini soyle degistiriyorum:

Kod:
SELECT Id, Name FROM TabloAdi WHERE Level=2 AND 
ParentRef={1. ListBox'tan Sececeginiz Kategorinin Id'si}
epic hatta değil   Alıntı Yaparak Yanıtla
Eski 07/04/2007, 12:53   #7 (permalink)
Uye
 
epic Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 03/2004
Mesaj: 677
Varsayılan

Yapacaginiz tek sey, listeden sececeginiz Item'in Id tutan degerini gondermek.

Gonderdiginiz Id, bir sonraki listeyi doldurmakta kullanacaginiz sql sorgusuna ParentRef olarak gecilir ve... hepsi bu!

Ornegin;

Kategoriler listesinden (ListBox1) Id'si 1 olan Telefonlar item'ini sectiniz. Alt gruplar listesini (ListBox2) doldurmak icin kullanacaginiz sql sorgusu su olacak:

Kod:
SELECT Id, Name FROM TabloAdi WHERE Level=2 AND 
ParentRef={1. ListBox'tan secilen Item'a ait Value (1)}
Boylece yazdigimiz tablo orneginde, Level'i 2, ParentRef'i 1 olan "Telsiz telefonlar", "Cep telefonları" ve "Kablolu telefonlar" ikinci ListBox'ta listelenmek uzere cekilmis olacak.
epic hatta değil   Alıntı Yaparak Yanıtla
Eski 07/04/2007, 14:08   #8 (permalink)
Üye
 
Üyelik Tarihi: 05/2006
Mesaj: 55
Varsayılan

Kod:
Protected Sub ListBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
        Dim con As SqlConnection
        Dim con_text As String
        Dim okuyucu As SqlDataReader = Nothing
        Dim komut As SqlCommand
        Dim komut_metni As String

        con_text = "workstation id=BARBAROS;packet size=4096;integrated security=SSPI;data source=BARBAROS;persist security info=False;initial catalog=stok;"

        con = New SqlConnection(con_text)
        con.Open()

        komut_metni = "SELECT st_kategori FROM tblStok WHERE st_altgrup=2 AND st_ustKategoriID=1 "
        komut = New SqlCommand(komut_metni, con)

        okuyucu = komut.ExecuteReader()

        Dim satir_no As Integer
        Dim satir As String
        Dim alan_sayisi As Integer
        alan_sayisi = okuyucu.FieldCount

        ListBox2.Items.Clear()

        While okuyucu.Read

            For satir_no = 1 To alan_sayisi - 1
                satir = satir + " " + Trim(okuyucu.GetString(satir_no))
            Next satir_no
            ListBox2.Items.Add(satir)


        End While

        okuyucu.Close()
        con.Close()
    End Sub
st_kategori = Name
st_ustKategoriID = ParentRef
st_altgrup= Level


bu şekilde yaptığım zaman sıralama gerçekleşiyor fakat silme işlemini yaptıktan sonra listeleme yapmıyor...

Teşekkürler
Kirkk hatta değil   Alıntı Yaparak Yanıtla
Eski 09/04/2007, 02:27   #9 (permalink)
Üye
 
nbakolik Adlı Üyenin Profil Grafiği
 
Üyelik Tarihi: 04/2007
Yer: Denizli
Mesaj: 170
Varsayılan

sorgularda adlarını kullanarak kayıtları alsan daha sağlam çalışmazmı
aynı adlı herhangi birşey yoksa hepsinden çok daha sağlam çalışacaktır sanırım
nbakolik hatta değil   Alıntı Yaparak Yanıtla
Eski 09/04/2007, 15:19   #10 (permalink)
Üye
 
Üyelik Tarihi: 05/2006
Mesaj: 55
Varsayılan

Arkadaşlar pratik bir çözüm bulamadım, hepsi için sql sorgusu yazmak çok uğraştırır. Otomatik olarak bu işlemi yapacak sql sorgusu nasıl yazabilirim ? Yada veri tabanın da mı değişiklikler yapmak gerekiyor ?
Kirkk hatta değil   Alıntı Yaparak Yanıtla
Cevapla

Bookmarks

Seçenekler

Mesaj Yazma Hakları
Yeni mesajgöndermezsiniz
Cevap yazamazsınız
Dosya ekleyemezsiniz
Mesajınızı düzenleyemezsiniz

BB code is Açık
[IMG] kodu Açık
HTML kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık

Benzer Konular
Konu Konuyu açana göre Forum Cevap En Son Mesaj
vb Combolar arası ilişki pursdl Visual Basic 1 03/04/2007 13:43
tablolar arası ilişki... micra Veritabanları & SQL 2 24/12/2006 15:17
veri tabanı arası ilişki lombaks ASP 6 10/04/2005 15:48
paradox ilişki sorunu cuma_kus Pascal / Delphi / Delphi.NET 1 02/11/2004 20:36
form arası ilişki euler Web Tasarım 4 12/07/2004 00:03


Forum saati Türkiye saatine göredir. GMT +3. Şu anda saat 17:08.

Reklamlar & Desteklenenler
Hassas Valf | Hassas Kaplama | Antalyamız | Gazete | Ticari Bilişim | Hakan Müştak | Rüya Tabirleri | Kadın | Hastalıklar | Cepte msn ve e-posta | Webmaster | Antalya Aupair | Turkish Property Antalya | Forum | Chat | Perde | Adsl | Araba | bolindir.com | guncelle.com | livescore | Web Tasarım | evden eve nakliyat | forum | evden eve | sohbet | Resimcim| Kalifiye İnsan Kaynakları | Web Tasarım | Oyun | Yusuf KOÇ | Akın Yorulmaz | şiir | UFO | Web Tasarım | Oyunlar | Canlı Tv |


Forum Yazılımı: vBulletin Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.2.0
Copyright ©2001 - 2008, Ceviz.net