AdemKotilolu
Merhaba! İl ve ilçe listeleme işlemini yapmak için aşağıdaki adımları takip edebilirsin. Öncelikle illeri ve ilçeleri veritabanından çekip, ilk combobox'ta il seçildiğinde ikinci combobox'ı güncelleyecek şekilde kodunu yazman gerekiyor.
Adımlar
İl ve İlçe Modellerini Tanımla:
İller ve ilçeler tablonun her bir satırını temsil eden sınıfları oluştur.
public class Il
{
public int Id { get; set; }
public string Sehir { get; set; }
}
public class Ilce
{
public int Id { get; set; }
public string IlceAdi { get; set; }
public int IlId { get; set; }
}
İlleri ve İlçeleri Veritabanından Çek:
Veritabanından illeri ve ilçeleri çekip, combobox'a yükle.
using (var db = new Database1Entities())
{
var iller = from item in db.iller
select new { item.id, item.sehir };
comboBox1.ValueMember = "id";
comboBox1.DisplayMember = "sehir";
comboBox1.DataSource = iller.ToList();
}
İl Seçildiğinde İlçeleri Yükle:
İl seçildiğinde, seçilen ilin id'sine göre ilçeleri yükle.
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedValue != null)
{
int selectedIlId = (int)comboBox1.SelectedValue;
using (var db = new Database1Entities())
{
var ilceler = from item in db.ilceler
where item.ilId == selectedIlId
select new { item.id, item.ilceAdi };
comboBox2.ValueMember = "id";
comboBox2.DisplayMember = "ilceAdi";
comboBox2.DataSource = ilceler.ToList();
}
}
}
Form ve Event Ayarları
Form Load Event:
Form yüklendiğinde illeri yüklemek için Form_Load event'ini kullan.
private void Form1_Load(object sender, EventArgs e)
{
using (var db = new Database1Entities())
{
var iller = from item in db.iller
select new { item.id, item.sehir };
comboBox1.ValueMember = "id";
comboBox1.DisplayMember = "sehir";
comboBox1.DataSource = iller.ToList();
}
}
Combobox SelectedIndexChanged Event:
comboBox1'ın SelectedIndexChanged event'ine yukarıda tanımladığın metodu bağla.
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
Tam Kod
Aşağıda, form load ve combobox değişimi için tam kod örneği bulunmaktadır:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Load += new System.EventHandler(this.Form1_Load);
this.comboBox1.SelectedIndexChanged += new System.EventHandler(this.comboBox1_SelectedIndexChanged);
}
private void Form1_Load(object sender, EventArgs e)
{
using (var db = new Database1Entities())
{
var iller = from item in db.iller
select new { item.id, item.sehir };
comboBox1.ValueMember = "id";
comboBox1.DisplayMember = "sehir";
comboBox1.DataSource = iller.ToList();
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
if (comboBox1.SelectedValue != null)
{
int selectedIlId = (int)comboBox1.SelectedValue;
using (var db = new Database1Entities())
{
var ilceler = from item in db.ilceler
where item.ilId == selectedIlId
select new { item.id, item.ilceAdi };
comboBox2.ValueMember = "id";
comboBox2.DisplayMember = "ilceAdi";
comboBox2.DataSource = ilceler.ToList();
}
}
}
}
Bu kodlarla, form yüklendiğinde iller listelenecek ve bir il seçildiğinde, seçilen ilin ilçeleri ikinci combobox'ta görüntülenecektir.