Ondalık SQL verilerini sum ile toplamak

Enes Akyüz

Hectopat
Katılım
31 Temmuz 2021
Mesajlar
202
Daha fazla  
Cinsiyet
Erkek
Öncelikle herkese iyi sosyaller. Barkodlu bir stok takip programı yazdım C# ile. Sorum şu bir hızlı satış paneli yapmak istedim. Barkodunu yazdığım ürün, fiyat, barkod olarak ekrana geliyor. Adet düzenlendikten sonra ekleye tıklandığında sepete düşüyor. Sum sorgusu ile toplam fiyat hesaplanıyor ve satış gerçekleşip stoktan ürünler düşüyor. Fakat problem şu eklediğim ürünlerde ki ondalık sayıları da tam sayı olarak görüyor ve sum da bu şekilde topluyor. Decimal, float, gibi çok fazla veri türünde denedim ya tür dönüşüm hatası alıyorum ya da money veri türünde bu şekilde virgüllü kısmı da ondalık kısım olarak yazıyor. Kodlar ve sistem fotoğraflarını aşağıya ekliyorum. Projeden soğudum bu hatadan dolayı durma noktasına geldim. Yardımcı olursanız çok sevinirim. Şimdiden teşekkürler.
IMG_20240309_234749.jpg
IMG_20240309_234618.jpg
IMG_20240309_234518.jpg
IMG_20240309_234437.jpg
 
C#:
using (SqlConnection connection = new SqlConnection(connectionString))
{
    connection.Open();

    using (SqlCommand command = new SqlCommand("SELECT SUM(CAST(Fiyat AS DECIMAL(9,2))) FROM sepet4", connection))
    {
        object result = command.ExecuteScalar();
        if (result != null)
        {
            textBox2.Text = result.ToString();
        }
        else
        {
            textBox2.Text = "0";
        }
    }
}


Şunu dener misin?
 
C#:
using (SqlConnection connection = new SqlConnection(connectionString))
{
 connection.Open();

 using (SqlCommand command = new SqlCommand("SELECT SUM(CAST(Fiyat AS DECIMAL(9,2))) FROM sepet4", connection))
 {
 object result = command.ExecuteScalar();
 if (result != null)
 {
 textBox2.Text = result.ToString();
 }
 else.
 {
 textBox2.Text = "0";
 }
 }
}

Şunu dener misin?

Denedim hocam değişen bir şey yok. Problem sum da değil. SQL veri tabanına aktarırken küsuratları da tam sayı olarak aktarıyor.

Veri tabanından virgül ile veri girişi yapıldığında sum düzgün şekilde topluyor. Problemimiz ben textboxlardan virgül ile veri çekemiyorum. Tam sayı olarak görüyor.
17100809532228302267083915767943.jpg
 
Son düzenleme:
Textboxlardan okunan sayıları Integer olarak okumuyorsunuz değil mi?
Hayır,double şekilde çeviriyor.

Sorununu tam olarak anlayamadım çok karmaşık olmuş.

Kod biraz karmaşık sistemden dolayı ama basit şekilde sorun SQL'e textbox da ki virgüllü sayıyı atamamam. Virgüllü kısmı da tam sayı olarak görüyor.
 
87,68 kısmını veritabanına mı kayıt etmek istiyorsunuz?

Ürünler isimli bir tabloda ürünler tutuluyor. Barkod okutulduğunda ürün, fiyat olarak listview e geliyor. Adet belirtildikten sonra ekle dendiğinde sepet listviewine gidiyor. Sepete eklemesi için olan sorgu bu fiyat verisini ürünler tablosunda ki verinin textbox a yazılmasıyla textboxdan alıyor yani. Problem şu tam sayı bir fiyatı doğru şekilde SQL'e çekiyor, topluyor. Fakat küsuratlı bir değer olduğunda 23,5 gibi 235,0 yaparak yazıyor veri tabanına. Yukarıda gördüğünüz benim SQL'den yazdığım bir şey sum u sınamak için yazdım yani programın böyle çalışması lazım.

Sistem biraz karışık farkındayım işin içinden çıkamadım. Çok bir şey de bulamadım internette kolay bir hata gibi görünüyor ama çok fazla uğraşmama rağmen çözemedim. Basit bir tür dönüşüm hatası değil anlaşılan.
 

Technopat Haberler

Yeni konular

Geri
Yukarı