En iyi yanıtlayıcılar
Update yapıyor ama aynı degerleri atıyor

Soru
-
Arkadaşlar gerçekten kafayı yemek üzereyim aynı yerde kaç gündür takıldım kaldım
yapmak istedigim şu datalistten stok ozellik tablosunu çekip üründüzenle kısmında aşagıdaki gibi
S 1
M 2
L 3
XL 4
2XL 6
gibi daha önce tanımlamdıgım ürünün beden özellikerini düzenliycem yeni degerler giricem..girilen sayısal degerler textbox alanı.
//BEDEN KAYITLARI GÜNCELLEME BAŞLADI
SqlDataAdapter cmd222 = new SqlDataAdapter("select * from tbl_stokanaozellik where kategoriid='" + magazakategori + "' ", baglanti);
DataTable dt222 = new DataTable();
cmd222.Fill(dt222);
if (dt222.Rows.Count > 0)
{
int i = 0;
while (i < dt222.Rows.Count )
{
foreach (DataListItem item in DLStokAnaOzellik.Items)
{
Label LblStokAnaOzellik = (Label)item.FindControl("LblStokAnaOzellik");
TextBox TxtSayi = (TextBox)item.FindControl("TxtSayi");
SqlCommand cmd22 = new SqlCommand("update tbl_urungaleristok set urungaleristokad=@urungaleristokad,urungaleristokdeger=@urungaleristokdeger,urungalerikatid=@urungalerikatid where urungalerikatid='" + urungaleriid + "'", baglanti);
cmd22.Parameters.Add("@urungaleristokad", LblStokAnaOzellik.Text);
cmd22.Parameters.AddWithValue("@urungalerikatid", urungaleriid);
cmd22.Parameters.Add("@urungaleristokdeger", TxtSayi.Text);
cmd22.ExecuteNonQuery();
i++;
}
}
}
//BEDEN KAYITLARI GÜNCELLEME BİTTİBU KOD ÇALIŞTIGINDA MESELA BEDEN TABLOSUNDA O ÜRÜNE AİT BEDENLERİN TAMAMI EN SON KAYIT
2XL 6 ALIYOR.ŞÖYLE YANİ
DAHA ÖNCE GÜZELCE 5 ADET BEDEN TANMLAMIŞIM
ESKİ HALİ TABLODA
S 1
M 2
L 3
XL 4
2XL 6
YENİ HALİ
2XL 6
2XL 6
2XL 6
2XL 6
2XL 6
AYNEN BU HALE GELİYOR.YOKMUDUR BİR USTA BENİ BU ÇETREFİLDEN ÇIKARTACAK.
- Düzenleyen BlackHawk38 11 Ağustos 2015 Salı 15:02
Yanıtlar
-
ARKADAŞLAR TEŞEKKÜR ETTİM SORUN ÇÖZÜLDÜ.İNSAN DEMEKKİ DETAYDA BOGULUNCA ÖNÜNDEKİNİ GÖREMİYOR.URUNSTOKGALERİ TABLOSUNDA YENİ BEDEN ÖLÇÜLERİNİ YAZDIRIRKEN SADECE URUNGALERIID YE GORE IŞLEM YAPTIRIP URUNSTOKGALERIID YE GORE SORGU YAZILMAYIP DONGUDE TEK TEK ID ALDIRILMAYIP UPDATE YAPILIRSA BENDEKI GIBI BUTUN KAYITLARI EN SON KAYDA ÇEVİRİR.YORUM YAPAN ARKADAŞLARA TEŞEKKÜR EDİYORUM.
- Yanıt Olarak İşaretleyen Serkan Canseven 18 Ağustos 2015 Salı 06:09
Tüm Yanıtlar
-
-
-
urungaleristok tablosu urungaleri sayfasının detay tablosu.urungaleriid urungaleri tablosundaki ürünün id alanı.
ürüngaleri tablosu
urungaleriid
urunadi
........
urungaleristok
urungaleristokid
urungaleristokad
urungaleristokdeger
urungalerikatid
- Düzenleyen BlackHawk38 12 Ağustos 2015 Çarşamba 13:52
-
urunduzenle kısmına tıkladıgında urune ait id yi pageload kısmında
urungaleriid = Page.RouteData.Values["urungaleriid"].ToString(); olarak aldım.urunun id sini atmakta sıkıntık yok soner hocam.mesela söyle diyim urun eklerken gayet guzel ekliyorum.kafama takılan noktadan biride şu sql insert ile tıkır tıkır çaışıken update neden böyle bir hata verip ddetaydaki o ürüne ait bütün stok özelliklerini en son kayıt neyse onla dolduruyor.
break point koydugumda bakıyorum normal işliyor degerleri tek tek görebiliyorum dogru olarak ama update tamamladıgında break pointte işleyen mantık yok
- Düzenleyen BlackHawk38 12 Ağustos 2015 Çarşamba 14:02
-
-
Sorun hatalı foreach kullanımından kaynaklanıyor. Syntax hatası değil de mantık hatası var. DataListItem içinde kaç eleman varsa o kadar sayıda döngüye girecek ve aynı sayıda update sorgusu çalıştıracak. Id alanının değeri sabit kaldığı için DataListItem in en son elemanı neyse en son ona güncelliyor. Yani datatable içindeki her satırı datalistitem eleman sayısı kadar güncelleme işlemine alıyor. En son olarak da L4 e güncelleyip bir sonraki satıra geçiyor. Dolayısıyla bütün satırlar aynı değere güncelleniyor
-
-
ARKADAŞLAR TEŞEKKÜR ETTİM SORUN ÇÖZÜLDÜ.İNSAN DEMEKKİ DETAYDA BOGULUNCA ÖNÜNDEKİNİ GÖREMİYOR.URUNSTOKGALERİ TABLOSUNDA YENİ BEDEN ÖLÇÜLERİNİ YAZDIRIRKEN SADECE URUNGALERIID YE GORE IŞLEM YAPTIRIP URUNSTOKGALERIID YE GORE SORGU YAZILMAYIP DONGUDE TEK TEK ID ALDIRILMAYIP UPDATE YAPILIRSA BENDEKI GIBI BUTUN KAYITLARI EN SON KAYDA ÇEVİRİR.YORUM YAPAN ARKADAŞLARA TEŞEKKÜR EDİYORUM.
- Yanıt Olarak İşaretleyen Serkan Canseven 18 Ağustos 2015 Salı 06:09