none
Formda Comboboxta alan Seçimi Yapıldığında Diger Combobaxta Dalların Gözükmesine Yardım RRS feed

  • Soru

  •  

    Forumda Görülen Alan Combobaxından alan Seçildiğinde Dal  Combobaxında O Alana Ait Dalların Gelmesini İstiyorum Şimdiden Yardım Eden Abilerime Tşkler :) Yalnız Bunun Sql Kısmını Beceremedim Mssql den Burda Ne  Ypcammm Yardım!


    C# Da Herşeyi Ögrenmeye Meraklı Lise 3 Ögrencisi :)

    14 Mart 2014 Cuma 13:46

Yanıtlar

  • T-SQL SQL Serverin kullandigi SQL'e verilen isim (Transactional SQL).

    Sen sanirim beni hic anlamamissin. O iki tablo arasinda baglanti kurman ile ilgisi yok. Bir taraftan zaten alan ID sini aliyorsun. Diger tarafta dogrudan onu parametre olarak kullanacaksin. SQL bilmeden veritabani programi yazmak istiyorsan, Linq kullan. Yukarida sana Linq ornegi verdim.

    Veritabanin senin ornegine bakinca cok kotu. Once veritabanlarina biraz calis istersen. Onu sana ornekleyemiyorum cunku nasil birsey yapmak istedigin bile anlasilmiyor bu yapilardan.

    Sen illa ben baglayayim gerisini hallederim diyorsan :

    select * from Staj left join Dal on Staj.alan = Dal.Alanlar
    

    Baglamaktan kastin foreign key baglantilarini yapabilmek ise, diagramda alanlar'i alan uzerine surukle birak. Gerekirse duzeltme yap gelen dialogta.

    14 Mart 2014 Cuma 16:00

Tüm Yanıtlar

  • Bu Kadar Zormu ya Neden Kimse Yardım etmiyor

    C# Da Herşeyi Ögrenmeye Meraklı Lise 3 Ögrencisi :)

    14 Mart 2014 Cuma 14:28
  • Bu soruyu neden SQL Server forumunda soruyorsun ki? T-SQL ile yazmayacaksin herhalde programini :) Illa SQL ile istiyorsan soyle bir SQL olacak:

    select * from Dal where Alanlar = @alan

    Asagida, MS SQL'in ornek Northwind database'i ile bir ornek var:

    void Main()
    {
        DataContext db = new DataContext(@"server=.\SQLexpress;trusted_connection=yes;database=Northwind");
        
        Table<Category> Categories = db.GetTable<Category>();
        Table<Product> Products = db.GetTable<Product>();
       
        Form f = new Form { Text="ComboBox ornek", Height=200, Width=500 };
        ComboBox cb1 = new ComboBox{ Left=10, Top=10, Width=450, Font=new Font("Courier New",8) };
        ComboBox cb2 = new ComboBox{ Left=10, Top=60, Width=450, Font=new Font("Courier New",8) };
        
        f.Controls.AddRange( new Control[] {cb1, cb2} );
    
        cb1.DataSource = Categories.ToList();
        cb1.ValueMember = "CategoryId";
        cb1.DisplayMember = "CategoryName";
        cb1.SelectedIndex = -1;
    
        cb1.SelectedIndexChanged += (sender, args) => { 
        
        var selectedCategory = ((ComboBox)sender).SelectedItem as Category;
        cb2.DataSource = null;
        cb2.Items.Clear();
        if (selectedCategory != null)
        {
          cb2.DataSource = Products.Where (p => p.CategoryId == selectedCategory.CategoryId).ToList();
          cb2.DisplayMember = "ProductName";
          cb2.ValueMember = "ProductId";
        }
        };
        
        f.Show();
    }
    
    
    [Table(Name = "Categories")]
    public class Category
    {
        [Column]
        public int CategoryId { get; set; }
        [Column]
        public string CategoryName { get; set; }
        [Column]
        public string Description { get; set; }
    }
    
    [Table(Name = "Products")]
    public class Product
    {
        [Column]
        public int ProductId { get; set; }
        [Column]
        public string ProductName { get; set; }
        [Column]
        public int CategoryId { get; set; }
    }

     Not: Ornek, calismasi icin gerekli tum kodu icerdiginden uzun (usingler disinda). Normalde EF kullanacaksin ya da LinqToSQL o zaman daha da basit:

    cb1.DataSource = db.Categories.ToList();
    cb1.ValueMember = "CategoryId";
    cb1.DisplayMember = "CategoryName";
    cb1.SelectedIndex = -1;
    
    // cb1.SelectedIndexChanged  eventi
        
    var selectedCategory = ((ComboBox)sender).SelectedItem as Category;
    cb2.DataSource = null;
    cb2.Items.Clear();
    cb2.DataSource = selectedCategory.Products.ToList();
    cb2.DisplayMember = "ProductName";
    cb2.ValueMember = "ProductId";
    

    14 Mart 2014 Cuma 15:09
  • Hocam Yanlış anladınız Beni Herhalde :) Benim Yapamadığım Tek Yer Sqldeki Staj Adlı table ile Dal Adlı Table Arasındaki Baglantıyı Kuramıyorum. References Foreign Key Felan Filanlı Biseydi ama Unuttum :( Veritabanı Hocam Berbat Olunca Sizlerden Ögrenmeye Çalışıorum :) Hocam O Kadar Profesyonel Anlatmışınız ki Benim Anlama Kapasitemide Aşıyor Eğer Birazdaha Basitleştirerk Anlatırsanız hem sorun Çözülmüş Olur Hemde Ben Ögrenmiş Olurum :) Mesela T-Sql Ne Felan bilmiom İlk Defa sizden duydum .d

    C# Da Herşeyi Ögrenmeye Meraklı Lise 3 Ögrencisi :)


    14 Mart 2014 Cuma 15:37
  • T-SQL SQL Serverin kullandigi SQL'e verilen isim (Transactional SQL).

    Sen sanirim beni hic anlamamissin. O iki tablo arasinda baglanti kurman ile ilgisi yok. Bir taraftan zaten alan ID sini aliyorsun. Diger tarafta dogrudan onu parametre olarak kullanacaksin. SQL bilmeden veritabani programi yazmak istiyorsan, Linq kullan. Yukarida sana Linq ornegi verdim.

    Veritabanin senin ornegine bakinca cok kotu. Once veritabanlarina biraz calis istersen. Onu sana ornekleyemiyorum cunku nasil birsey yapmak istedigin bile anlasilmiyor bu yapilardan.

    Sen illa ben baglayayim gerisini hallederim diyorsan :

    select * from Staj left join Dal on Staj.alan = Dal.Alanlar
    

    Baglamaktan kastin foreign key baglantilarini yapabilmek ise, diagramda alanlar'i alan uzerine surukle birak. Gerekirse duzeltme yap gelen dialogta.

    14 Mart 2014 Cuma 16:00