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();
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.
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
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.
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.
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
W3Schools offers free online tutorials, references and exercises in all the major languages of the web. Covering popular subjects like HTML, CSS, JavaScript, Python, SQL, Java, and many, many more.
www.w3schools.com
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.
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.