combobox selected value değer alma

meto24
23-09-2017, 17:25   |  #1  
meto24 avatarı
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Eyl 2017

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ü

White-Fox
23-09-2017, 17:43   |  #2  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,103 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

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.

Son Düzenleme: White-Fox ~ 23 Eylül 2017 17:45
meto24
23-09-2017, 18:08   |  #3  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Eyl 2017

ben text deeğeri değil bransid değerini almak istiyorum..

White-Fox
23-09-2017, 18:29   |  #4  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,103 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

bu yüzden mi seçili değeri stringe çevirmeye çabalıyorsun?

ne istiyorsun zavallı combobox'tan ?

meto24
24-09-2017, 00:35   |  #5  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Eyl 2017

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

White-Fox
24-09-2017, 11:16   |  #6  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,103 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

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.

Son Düzenleme: White-Fox ~ 24 Eylül 2017 11:18
meto24
24-09-2017, 14:19   |  #7  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Eyl 2017

var a= comboBox2.SelectedValue.ToString();

bu şekilde kod çalışıyor ama a değişkenini int tipine dönüştürmem lazım

White-Fox
24-09-2017, 14:30   |  #8  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,103 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

"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 :)

meto24
25-09-2017, 23:53   |  #9  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Eyl 2017

textbox gönderdiğim zaman sayı şeklinde geliyor..

White-Fox
26-09-2017, 01:18   |  #10  
White-Fox avatarı
Yıllanmış Üye
Teşekkür Sayısı: 155
1,103 mesaj
Kayıt Tarihi:Kayıt: Eyl 2010

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

meto24
28-09-2017, 00:16   |  #11  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Eyl 2017

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();
        }

Son Düzenleme: meto24 ~ 28 Eylül 2017 00:35
meto24
28-09-2017, 00:32   |  #12  
OP Taze Üye
Teşekkür Sayısı: 0
7 mesaj
Kayıt Tarihi:Kayıt: Eyl 2017

brans tablosundaki veriler