C# Datagridview Veritabanı İşlemi Hkn. (Soru)
-
Merhaba hocalar,
Soruma direk geçiyorum;
Şimdi textboxa sayılar giriyorum ve veritabanında girilen sayı kadar düşürüyorum. Bu konuda sorunum yok ama sayı düşürülürken sıfıra geldiği zaman hata vermesini istiyorum. Ben ayrı bir kodla sütundaki sayıları labele eşitledim, label 0 yada aşağı olduğu zaman durduruyorum ama ginede eksi sayılara iniyor bunu yapmanın bir yolunu gösterirmisiniz.
Karışık olmamıştır inş.
Şimdiden teşekkürler...
-
düşme işleminden önce adet kontrol yaptırman lazım
kalan miktar 0 mı ? değilse işleme devam et ;
kalan miktar , düşülecek miktardan büyük mü ? işleme devam et ; değilse uyarı ver "düşmek istediğiniz miktar kalan miktardan yüksektir kontrol edip yeniden deneyin"
-
Sharp bunu yazdı
düşme işleminden önce adet kontrol yaptırman lazım
kalan miktar 0 mı ? değilse işleme devam et ;
kalan miktar , düşülecek miktardan büyük mü ? işleme devam et ; değilse uyarı ver "düşmek istediğiniz miktar kalan miktardan yüksektir kontrol edip yeniden deneyin"
tmm bunu nasıl yapcas ben labele aktardım işlemi olmadı bir örnek gösterirmisin acaba? Vb da böyle yapılıyordu oluyordu ve veritabanı işlemide kesiodu. (Bu arada connectionuda işlem bitişi kapattım connection açıktır demeyin lütfen)
calpazhan tarafından 19/Ara/12 10:05 tarihinde düzenlenmiştir -
calpazhan bunu yazdıSharp bunu yazdı
düşme işleminden önce adet kontrol yaptırman lazım
kalan miktar 0 mı ? değilse işleme devam et ;
kalan miktar , düşülecek miktardan büyük mü ? işleme devam et ; değilse uyarı ver "düşmek istediğiniz miktar kalan miktardan yüksektir kontrol edip yeniden deneyin"
tmm bunu nasıl yapcas ben labele aktardım işlemi olmadı bir örnek gösterirmisin acaba? Vb da böyle yapılıyordu oluyordu ve veritabanı işlemide kesiodu. (Bu arada connectionuda işlem bitişi kapattım connection açıktır demeyin lütfen)
1 adet örnek kod veriyorum hocam
SqlCommand sec1 = new SqlCommand("select count(*) from urunler where (miktari > 0) and sil=0 and barkod like '" + txtbarkod.Text + "'", baglanti); sec.ExecuteScalar(); int sayi = Convert.ToInt32(sec.ExecuteScalar()); if (sayi == 0) { MessageBox.Show("Barkoda Ait Ürün Bulunamadı veya stok bitti", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Information); }Sharp tarafından 19/Ara/12 10:30 tarihinde düzenlenmiştir -
Sharp bunu yazdıcalpazhan bunu yazdıSharp bunu yazdı
düşme işleminden önce adet kontrol yaptırman lazım
kalan miktar 0 mı ? değilse işleme devam et ;
kalan miktar , düşülecek miktardan büyük mü ? işleme devam et ; değilse uyarı ver "düşmek istediğiniz miktar kalan miktardan yüksektir kontrol edip yeniden deneyin"
tmm bunu nasıl yapcas ben labele aktardım işlemi olmadı bir örnek gösterirmisin acaba? Vb da böyle yapılıyordu oluyordu ve veritabanı işlemide kesiodu. (Bu arada connectionuda işlem bitişi kapattım connection açıktır demeyin lütfen)
1 adet örnek kod veriyorum hocam
SqlCommand sec1 = new SqlCommand("select * from urunler where (miktari > 0) and sil=0 and barkod like '" + txtbarkod.Text + "'", baglanti); sec.ExecuteScalar(); int sayi = Convert.ToInt32(sec.ExecuteScalar()); if (sayi == 0) { MessageBox.Show("Barkoda Ait Ürün Bulunamadı veya stok bitti", "UYARI", MessageBoxButtons.OK, MessageBoxIcon.Information); }Saolasın hocam ben sclar ile yapmadım direk labele sütundaki veriyi aktardım sorgu işleminide labele göre yaptım.
-
hocam sql tarafında bir trigger oluşturabilirsin. datayı yazdığın tablonun eksi değere düştüğünde yazdırmazsın. uygulama tarafında bu sorgu sonucunu yakalayıp sorununu çözebilirsin.
hiç böyle bir uygulama yapmadım ama mantıken bu işini görecektir. hem de oldukça sistematik olacaktır.:)
anahtar kelimen Instead Trigger .
ayrıca;
sql e sorgu gönderdiğinde dönen sonucu aşağıdaki şekilde uygulama tarafında yakalayabilirsin.
SqlConnection _con = new SqlConnection("server=.;database=Northwindintegrated Security=SSPI;");
_con.InfoMessage += new SqlInfoMessageEventHandler(_con_InfoMessage);INFOMESSAGE aşağıdaki event i çıkarır.
static void _con_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
string myMsg = e.Message;
} -
rappermcs bunu yazdı
hocam sql tarafında bir trigger oluşturabilirsin. datayı yazdığın tablonun eksi değere düştüğünde yazdırmazsın. uygulama tarafında bu sorgu sonucunu yakalayıp sorununu çözebilirsin.
hiç böyle bir uygulama yapmadım ama mantıken bu işini görecektir. hem de oldukça sistematik olacaktır.:)
anahtar kelimen Instead Trigger .
ayrıca;
sql e sorgu gönderdiğinde dönen sonucu aşağıdaki şekilde uygulama tarafında yakalayabilirsin.
SqlConnection _con = new SqlConnection("server=.;database=Northwindintegrated Security=SSPI;");
_con.InfoMessage += new SqlInfoMessageEventHandler(_con_InfoMessage);INFOMESSAGE aşağıdaki event i çıkarır.
static void _con_InfoMessage(object sender, SqlInfoMessageEventArgs e)
{
string myMsg = e.Message;
}Bu olayı bende biliyorum ama bunu acceste nasıl yapcas :) Aradım ama hep ingilizce sayfalar çıkıyor
