comboBox2.DataSource = db.branslar.ToList();
comboBox2.ValueMember = "bransid";
comboBox2.DisplayMember = "bransad";
int a= comboBox2.SelectedValue.ToString();
int a değer alırken tip hatası veriyor, çözemedim bir türlü
comboboxta hangi ifadenin seçili olduğunu almak istiyorsan;
int a = Convert.ToInt32(Combobox.Text);
şeklinde alabilirsin seçili selected value vs ile uğraşmana gerek yok.
direkt text niteliği sana seçili olan üyenin stringini döndürecektir.
EDİT:Ayrıca tip hatası vermesi çok doğal ifadeyi "tostring" deyip " int" değişkenine atıyorsun.
comboBox2.DataSource = db.branslar.ToList();
comboBox2.ValueMember = "bransid";
comboBox2.DisplayMember = "bransad";
int a= Convert.ToInt32(comboBox2.SelectedValue.ToString());
şeklinde yapabilirsin.
ben text deeğeri değil bransid değerini almak istiyorum..
senin dediğin gibi "int a= Convert.ToInt32(comboBox2.SelectedValue.ToString());" yaptım hata verdi..
ama şöle bişey yapınca
textBox3.Text = comboBox2.SelectedValue.ToString();
int a = Convert.ToInt32(textBox3.Text); // burda hata veriyor
textbox değer atayınca gösteriyor hata vermiyor ama textbox dan int a değer atayınca tip hatası veriyor..
hata kodu=Giriş dizesi doğru biçimde değildi
Diyorum ki bir combobox'sın olsun içinde 1,2,3,4,5 sayıları var sen bu sayılardan hangisinin seçili olduğunu bulmak istiyorsan combobox'ın text niteliği sana o sayıyı verecek.
Derleyici hata orada diyorsa oradadır o halde tek ihtimal dönen sayının int değer aralığında olmaması.Değer tablolarını ve döndürülen sayının kaç olduğuna bir bak.
Not:step step yapılan adımlar var visual studioda aşağıda orada kırmızı olan yeri bulursan hatanın sebebini görürsün.
Edit:İfaden bir sayı döndürmüyor da olabilir null yada whitespace dönüyor olabilir.
var a= comboBox2.SelectedValue.ToString();
bu şekilde kod çalışıyor ama a değişkenini int tipine dönüştürmem lazım
"var " ile bir değişken tanımladığında derleyiciğe diyorsunki buna nasıl bir değişken atarsam ona göre tipini belirle.
şimdi sen bunu kaldırıp int yaptığında çalışmıyorsa sorun gelen değerin integer türünde olmamasıdır.
gelen veriyi messagebox ile vs ekrana gösterirmisin.Bakalım gelen verinin karakteri ne ?
Bazı istisnai durumları yakalayabilirsin.int değişkenenine null yada whitespace gelmesi durumunda
gelen veriyi sınamak için String.IsnullOrEmpyt veya String.Isnullorwhitespace kullanabilirsin.
Veya kodun hatalı durumda çalışmasını istemiyorsan bir
try{kodun}catch(exception){} şeklinde yapı kurabilirsin.
Ben combobox'ın içinde hangi elemanalr olduğunu bilmeden sana olasılıklar dışında bir şey söyleyemem.
Bana biraz detay verirsen yardımcı olucam basit bir konuyu 2 güneyaydık yani :)
textbox gönderdiğim zaman sayı şeklinde geliyor..
Hocam iyi güzelde şimdi her sayı int değildir ki ya.
2,34 şu bir int değil
9 kentilyon bir int tipinde veri değil.
Ama bunlar sayı?
Gerçekten tip hatası bu kadar büyütülecek bir hata değil.Nerede olduğunuda gösteriyor zaten daha ne?
system.globalization dan currency falan mı seçtiniz combobox üyelerini ? eğer bu tarz birşey yapmışsanız parse etmeden atayamazsınız.Yani gerçekten ihtimal çok.
Combobox'ın içeriğindekileri yazsan anlayacağız :D
brans tablomun sql diyazn ve veri görünümlerini attım tablo değerleride 2 resimde var
combobox hiçbir ayarı değiştirmedim..bransid otomatik sayı int tipinde..
Bu sorunu çözemediğim projem yarım kaldı kaç gündür tip dönüştürme sıkıntısı yüzünden projeye devam edemiyorum..yardım ediyorsunuz için çok saolun, aşağıda bilgiler verdim yine bakarsanız çok sevinirim..
Aşağıda aynı projenin doktorlar tablosunda güncelleme işlemi yaptım burda comboxdan aldığım bransid değeri direk veritabanına gönderebiliyorum hata vermiyor..
private void button5_Click(object sender, EventArgs e)//GÜNCELLEME
{
int tc = Convert.ToInt32(textBox4.Text);
dd = db.doktorlar.Where(tablo => tablo.drtc == tc).FirstOrDefault();
dd.dradsoyad = textBox1.Text;
dd.drbrans = Convert.ToInt32(comboBox1.SelectedValue.ToString()); //hata vermiyor
dd.adres = textBox2.Text;
dd.tel = textBox3.Text;
db.SaveChanges();
listele();
}