Girilen Değer Kadar Veritabanından Sayı Eksilmesi
-
S.A Arkadaşlar Bu Kodda Update Söz Dizimi Hatası Diye Hata Veriyor. Hata Nerede Acaba SQL Server DB’de Aynı Kod Hata Vermeden Çalışıyo Access’de Çalışmıyo...
Kod Burada:
komut.CommandText = "UPDATE T_Recete SET ILACADET -=" + numAdet.Value + "" + "WHERE ID=" + dgvIlacListesi.CurrentRow.Cells[0].Value;
-
ne hatası veriyor ki, sql sorgusuna bir breakpoint koyup değerlerine baktın mı ?
-
dgvIlacListesi.CurrentRow.Cells[0].Value 'dan doğru id geldiğine emin misin?
sql sorgusunu uygulatmadan önce bi textbox'a yazdırıp buraya yazarsan sözdizimi hatasının nerde olduğunu görebiliriz bence.
gencbeyin tarafından 04/May/13 22:21 tarihinde düzenlenmiştir -
sql server ile access bir kefede değil. sql server ile bir çok iç fonksiyon çalıştırabilir ve ayrıca kendi trigger-procedure lerini yazıp çalıştırabilirsin. ancak aynı şeyleri access de yapman mümkün değildir. Karşılaştığın problemde aslında bunla alakalı.
Access de -= diye bir tanımalama mevcut değil. O yüzden hata veriyor.
Çözümün ise
ILACADET değerini bir değişkende tutuacaksın ve o değeri azaltacaksın (bunun için executescalar ı kullanabilirsin http://www.engincode.com/Makaleler/adonet/execute-scalar---adonet-metodlari-1/28)
var yeniDeger = ILACADET - numAdet.Value; // numAdet.Value bunu int e cast etmen gerekir eğer double ise (int)numAdet.Value şeklinde
komut.CommandText = "UPDATE T_Recete SET ILACADET =" + yeniDeger + "" + "WHERE ID=" + dgvIlacListesi.CurrentRow.Cells[0].Value;
-
unbalanced bunu yazdı
sql server ile access bir kefede değil. sql server ile bir çok iç fonksiyon çalıştırabilir ve ayrıca kendi trigger-procedure lerini yazıp çalıştırabilirsin. ancak aynı şeyleri access de yapman mümkün değildir. Karşılaştığın problemde aslında bunla alakalı.
Access de -= diye bir tanımalama mevcut değil. O yüzden hata veriyor.
Çözümün ise
ILACADET değerini bir değişkende tutuacaksın ve o değeri azaltacaksın (bunun için executescalar ı kullanabilirsin http://www.engincode.com/Makaleler/adonet/execute-scalar---adonet-metodlari-1/28)
var yeniDeger = ILACADET - numAdet.Value; // numAdet.Value bunu int e cast etmen gerekir eğer double ise (int)numAdet.Value şeklinde
komut.CommandText = "UPDATE T_Recete SET ILACADET =" + yeniDeger + "" + "WHERE ID=" + dgvIlacListesi.CurrentRow.Cells[0].Value;
public int ILACADET { get; set; }
var yeniDeger = ILACADET - Convert.ToInt32(numAdet.Value);
komut.CommandText = "UPDATE T_Recete SET ILACADET ='" + yeniDeger + "'" + "WHERE ID=" + dgvIlacListesi.CurrentRow.Cells[0].Value;
Hocam Bu Şekilde Yaptım Hata Vermiyor Fakat Kayıttan da Düşmüyo!
-
tablonda ilacadet kolonunun tipi ne hocam, sayısal ise tek tırnak arasına yazmamalısın.. çözemezsen özelden teamviewer id-pass yollarsan bakayım