Herkese merhabalar, Projemde combobox'a sql üzerinden veri çekmek istiyorum, Yani Ülke adına göre ilişkili tablodan Şehri çekmesini istiyorum.
2 Adet dto class oluşturdum ve içlerine;
public class SelectSehirDto
{
public long Id { get; set; }
public string SehirAdi { get; set; }
}
public class SelectUlkeDto
{
public long Id { get; set; }
public string UlkeAdi { get; set; }
}
Sonrasında;
SqlConnection baglanti = new SqlConnection("Server=****;Database=***; Uid=**;Pwd=******");
Veri tabanı bağlantısını sağladım ve formun loadına aşağıdaki gibi kodu ekledim; ( Burada hiç sorun olmuyor Ülke combobox'a geliyor,)
private void DenemeEditForm_Load(object sender, EventArgs e)
{
var ulke = new List<SelectUlkeDto>();
baglanti.Open();
SqlCommand komut = new SqlCommand("Select Id, UlkeAdi From Ulke", baglanti);
SqlDataReader dr = komut.ExecuteReader();
while (dr.Read())
{
ulke.Add(item: new SelectUlkeDto { Id =(long)dr["Id"], UlkeAdi = (string)dr["UlkeAdi"] });
}
baglanti.Close();
comboBox1.DataSource = ulke;
comboBox1.ValueMember = "Id";
comboBox1.DisplayMember = "UlkeAdi";
}
comboBox1_SelectedIndexChanged alanına ise;
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
var sehirler = new List<SelectSehirDto>();
//comboBox2.Items.Clear();
baglanti.Open();
SqlCommand komut2 = new SqlCommand("Select Id, SehirAdi from Sehir where UlkeId=@p2", baglanti);
komut2.Parameters.AddWithValue("@p2", long.Parse(comboBox1.SelectedItem.ToString()));
SqlDataReader dr2 = komut2.ExecuteReader();
while (dr2.Read())
{
sehirler.Add( new SelectSehirDto { Id = (long)dr2["Id"], SehirAdi = (string)dr2["SehirAdi"] });
}
baglanti.Close();
textEdit1.Text = sehirler.ToString();
comboBox2.DataSource = sehirler;
comboBox2.ValueMember = "Id";
comboBox2.DisplayMember = "SehirAdi";
}
Kodunu ekliyorum, Kodu çalıştırdığımda ise;
komut2.Parameters.AddWithValue("@p2", long.Parse(comboBox1.SelectedItem.ToString()));
alanında;

hatasını döndürüyor, Bu hatadan öncesinde breakpoit koyup baktığımda combobox'a ÜlkeId si geliyor devam ettirdiğimde ise bu hataya düşüyor.
Yardımcı olabilir misiniz?
Teşekkürler,