C# Ürun detaylarını label'a yazdırmak

  • Konuyu başlatan Konuyu başlatan Dehcik*
  • Başlangıç tarihi Başlangıç tarihi

Dehcik*

Doçent
Katılım
27 Ağustos 2009
Mesajlar
625
Reaksiyon puanı
4
Puanları
0
Merhabalar,

bir windows projesinde ado ile veritabanından ürünleri listboxa doldurup seçili elemanın stokmiktarını label1'e fiyatının da label2'ye yazdırmak istiyorum.

İlk tıkladığımda label'a yazdırıyorum ancak başka bi ürünü seçtiğimde stokmiktarı ve fiyat değişmiyor.:glare:

Nasıl çözebilirim ?
 

Cursed

Asistan
Katılım
26 Eylül 2006
Mesajlar
180
Reaksiyon puanı
1
Puanları
18
anladığım kadarıyla yanlış bir olaya yazıyorsunuz. listbox ın hangi olayına yazdınız, label 'lara yazdırdğınız kodu ?
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
listbox'ın selectedindexchanged eventini(olayını) kullanacaksın. olmazsa kodları yazarsan daha çabuk sonuç alabilirsin.
 

Dehcik*

Doçent
Katılım
27 Ağustos 2009
Mesajlar
625
Reaksiyon puanı
4
Puanları
0
private void lbUrunAl_SelectedIndexChanged(object sender, EventArgs e)
{
lbl1.Visible =
true;
lbl2.Visible =
true;
lbl1.Text =
Convert.ToString(urun.StokMiktari);
lbl2.Text =
Convert.ToString(urun.Fiyat);
}

ilk tıklıyorum bşlgşler geliyor, 2. tıkladığım da değişmiyor bilgiler.
 

blauzahn

Asistan
Katılım
23 Nisan 2008
Mesajlar
220
Reaksiyon puanı
1
Puanları
0
Windows projelerinde çok deneyimim yok fakat Asp.Net de bunu listboxı doldurduğunuz alanı if(!IsPostBack) bloğuna aldığınızda sorun çözülüyordu. Eminim windows projelerinde de bunun bir kullanım yöntemi vardır... Saygılarımla.

Debug ederseniz sorunu daha iyi anlarsınız. Siz listboxtan bir eleman değiştirdiğinizde tekrardan listboxı doldurmaya çalışırsanız bu sorun ortaya çıkıyor.
 

Dehcik*

Doçent
Katılım
27 Ağustos 2009
Mesajlar
625
Reaksiyon puanı
4
Puanları
0
Windows projelerinde postback diye bi olay yada kavram yok ama listboxtan seçtirip click olayında o ürünü aldırdıktan sonra listbox'ı temizliyorum ondan sonra tekrar dolduruyorum.

Birde şunu da soyliyim, ürünü seçtiriyorum selectedItem = txtAd.text dediğimde hiç sorun olmadan değişiyo, ama txtStok.text = convertToInt32(urun.StokMiktari) dediğimde yine aynı olay oluyor, ilk seçtiğim de geliyor bir daha gelmiyor.

Yani sorun class ta olabilir mi acaba ?
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
selectedindexchanged olayında urun.StokMiktari ve urun.Fiyat değişkenlerini değiştiren bir durum olmadığı için hep aynı sonuç yazar.
 

Dehcik*

Doçent
Katılım
27 Ağustos 2009
Mesajlar
625
Reaksiyon puanı
4
Puanları
0
selectedindexchanged olayında urun.StokMiktari ve urun.Fiyat değişkenlerini değiştiren bir durum olmadığı için hep aynı sonuç yazar.

Sql den veri çekerken urunAd'ı selectedItem'a atadım,selectedIndexChange olayında stokMiktarını ve fiyatı görmek istediğim de her urunun farklı stokMiktarı ve fiyatı olduğundan değişmesi gerekmezmiydi?
 

siriusian

Öğrenci
Katılım
5 Aralık 2008
Mesajlar
93
Reaksiyon puanı
0
Puanları
0
selectedindexchanged değilde başka eventleri kullanmayı denedin mi? ben de aynı sorunla karşılaşmıştım başka eventle yapmıştım sanırım, şuan net olarak hatırlamıyorum valuememberchanged ve textchanged eventlerinde de bir dene bence
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
selectedindexchanged olayında şöyle yapabilirsin:

Kod:
[SIZE=2][COLOR=Black][SIZE=2]private [/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=Black][SIZE=2]void[/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=Black] lbUrunAl_SelectedIndexChanged([/COLOR][/SIZE][SIZE=2][COLOR=Black][SIZE=2]object[/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=Black] sender, [/COLOR][/SIZE][SIZE=2][COLOR=Black][SIZE=2]EventArgs[/SIZE][/COLOR][/SIZE][SIZE=2][COLOR=Black] e)
{[/COLOR][/SIZE]
    string sql="Select StokMiktari,Fiyat From TabloAdi1 Where UrunAdi=@urunadi;";
    DataTable dtSonuc=new DataTable();
    SqlDataAdapter adp=new SqlDataAdapter(sql, con);
    adp.SelectCommand.Paramaters.AddWithValue("@urunadi", [SIZE=2]lbUrunAl.SelectedItem.ToString()[/SIZE]);
    if(con.State != ConnectionState.Open)
        con.Open();
    adp.Fill(dtSonuc);
    con.Close();

    lbl1.Text=dtSonuc.Rows[0]["StokMiktari"].ToString();
    lbl2.Text=dtSonuc.Rows[0]["Fiyat"].ToString();
}
 

Dehcik*

Doçent
Katılım
27 Ağustos 2009
Mesajlar
625
Reaksiyon puanı
4
Puanları
0
Sensei Necati abi büyüksün vallaha çok teşekkür ederim:flowers:
 

mc92001

Doçent
Katılım
11 Şubat 2009
Mesajlar
786
Reaksiyon puanı
16
Puanları
18
Merhabalar,

bir windows projesinde ado ile veritabanından ürünleri listboxa doldurup seçili elemanın stokmiktarını label1'e fiyatının da label2'ye yazdırmak istiyorum.

İlk tıkladığımda label'a yazdırıyorum ancak başka bi ürünü seçtiğimde stokmiktarı ve fiyat değişmiyor.:glare:

Nasıl çözebilirim ?

projeyi komple SDN'de bitireceksin galiba.
 

Dehcik*

Doçent
Katılım
27 Ağustos 2009
Mesajlar
625
Reaksiyon puanı
4
Puanları
0
Bu ilk proje denemem, bundan para kazanmıyorum.

İleride takıldığım yerler olunca bana yardımcı olucak.

Sizce bana yardımcı olan arkadaşlar kötü mü yaptı ?
 

N3CAT1

Dekan
Emektar
Katılım
20 Nisan 2008
Mesajlar
6,607
Reaksiyon puanı
144
Puanları
243
sorun yok. istediğin zaman soru sorabilirsin. hem yardım etmiyorlar hem de yardım edene de mani oluyorlar. ilginç gerçekten.
 
S

SDN Okuru

SDN Okuru
arkadaşlar benm çok farklı bir sıkıntım var ben labelların text ozelliklerini veri tabanından cekecegim daha dogrusu bir otomasyon yapacagım ve 5 tane dilde kurulum olabilecek nasıl yapıldığını bilen var mı
 

annttiigs

Profesör
Katılım
7 Şubat 2007
Mesajlar
2,589
Reaksiyon puanı
24
Puanları
218
privatevoid lbUrunAl_SelectedIndexChanged(object sender, EventArgs e)
{
lbl1.Visible =
true;
lbl2.Visible =
true;
lbl1.Text =
Convert.ToString(urun.StokMiktari);
lbl2.Text =
Convert.ToString(urun.Fiyat);
}

ilk tıklıyorum bşlgşler geliyor, 2. tıkladığım da değişmiyor bilgiler.

Selected index change olayından sonra urun objesinin içeriğini güncelliyor musun ? Güncelleme yapmıyorsan sürekli olarak aynı ürün bilgilerini çektiğinden değişmemesi normal gibime geldi.


edit : çözülmüş bile.
 

sino

Öğrenci
Katılım
24 Ocak 2013
Mesajlar
34
Reaksiyon puanı
0
Puanları
0
projeyi komple SDN'de bitireceksin galiba.
Bir ürün fiyatıyla miktarını göstermek senin deyiminle projeyi bitirmek galiba. Adam yapamamış sormuş. Abartmaya gerek yok yani. Biliyorsan söyle de adam yapsın.
 

sino

Öğrenci
Katılım
24 Ocak 2013
Mesajlar
34
Reaksiyon puanı
0
Puanları
0
privatevoid lbUrunAl_SelectedIndexChanged(object sender, EventArgs e)
{
lbl1.Visible =
true;
lbl2.Visible =
true;
lbl1.Text =
Convert.ToString(urun.StokMiktari);
lbl2.Text =
Convert.ToString(urun.Fiyat);
}

ilk tıklıyorum bşlgşler geliyor, 2. tıkladığım da değişmiyor bilgiler.

Anladığım kadarıyla OOP mantığını kullanmışsın hocam da yanlış nesneler seçmişsin. Yoksa OOP ile çatırt diye yaptığın otururdu.
Neyse yaptığına göre ben de farklı bir mantık söyleyim.
Global de şu nesnelerimiz var sayalım ; SqlConnection connection = new SqlConnection("...."); SqlCommand command; SqlDataReader reader;
Listboxun SelectedIndex'ine gidelim.

var urunAdi = lbxUrunler.SelectedItem;
var query = "Select UrunFiyat,UrunStok from Urunler where UrunAdi=@name"
command = new SqlCommand(query,connection);
command.Parameters.AddWithValue("@name",urunAdi)
if (connection.State == ConnectionState.Closed)
connection.Open();
reader = command.ExecuteReader();
if (reader.HasRows)
{ while (reader.Read())
{
lbl1.Text = "Fiyat : " + reader.GetDecimal(0).ToString() + " TL";
lbl2.Text = "Stok Miktarı : " + reader.GetInt16(1).ToString();
}
}
if (connection.State==ConnectionState.Open)
connection.Close();
command.Dispose();

Bende böyle bir yöntem kullanırdım fakat sen zaten cevabını almışsın :)
 
Üst