C# Forms bakiye ekleme sistemi nasıl yapılır?

waleran

Picopat
Katılım
10 Ağustos 2023
Mesajlar
117
Merhaba C# forms ve SQL ile bir proje yapıyorum okul için. Proje de karta bakiye ekleme sistemi var fakat bir türlü beceremedim bunu nasıl yapabilirim? Şu anki kod bu şekilde.

C#:
string sorgu = "update kart set bakiye = bakiye + @bakiye where kart_no = @kart_no";
 SqlCommand komut = new SqlCommand(sorgu, baglanti);
 komut.Parameters.AddWithValue("@kart_no", Convert.ToInt32(txtKartNo.Text));
 komut.Parameters.AddWithValue("@bakiye", Convert.ToDecimal(txtBakiye.Text));
 baglanti.Open();
 komut.ExecuteNonQuery();
 MessageBox.Show("Bakiyeniz Başarıyla Yüklendi!", "Bakiye", MessageBoxButtons.OK, MessageBoxIcon.Information);
 txtBakiye.Clear();
 baglanti.Close();



 
Hocam pek anlamıyorum ama yardımcı olabilir misiniz? Bunu nasıl yapabilirim sabahtan beri cebelleşiyorum doğru düzgün kaynak bulamadım.
Normalde araştırman taraftarıyım, bu kaynakları kendin bul isterim ama şimdilik sana İngilizce düzgün kaynak vereceğim. Programlama için İngilizce şart, gelecekte bunun üzerine odaklan derim.


Yukarıdaki ikisini kullanarak öğrenebilirsin anlattığım şeyi. Haricinde google'da "mssql how to set a default value for an existing column" diye aratırsan yukarıdaki ikisinin birleşmiş halde kullanımını bulabilirsin. Kendi tablon için düzenlersin sorguyu. Daha da yapamazsan söyle, anlatayım.
 

Hocam bunlardan hiçbir şey anlamadım sanırım sorun bende.
 
Hocam bunlardan hiçbir şey anlamadım sanırım sorun bende.
Temelde eksiğin olduğu anlamına geliyor. RDBMS öğrenmen lazım ekstra olarak. Fakat şimdilik ödevine yardımcı olması amacıyla anlatayım.

Öncelikle, her yeni kart eklediğinde sen şuan bakiyeyi NULL olarak ayarlıyorsun, dolayısıyla bakiye NULL olduğundan dolayı neyle toplarsan topla sayı yutuluyor ve NULL kalmaya devam ediyor. Bu durumu bir kaç farklı şekilde çözebilirsin.

Birincisi bundan sonra bakiye'de NULL'a izin vermezsin, ve default bir value set edersin, böylece o default value ile eklemiş olursun tabloya kartları, bu da 0 TL tabii ki. Bakiye yüklerken SQL sorgusu üzerinde aritmetik yürüttüğünde bu undefined behavior ile karşılaşmazsın.

İkincisi COALESCE kullanırsın güncellerken, örnek kullanımı Google'da var.

Üçüncüsü, C# tarafında önce bakiyeyi getirirsin eğer nullsa direkt eklenecek bakiyeyi yazarsın.

Daha farklı yöntemlerde var ancak bu üçü temel olarak fikir vermesi amacıyla yetmeli. Kod kısmını kendin halledersin muhtemelen.
 
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…