منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : سؤال بخصوص تحديث كميات المواد المباعه في المستودع
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم اخواني لدي جدول اسمه   items   ويحتوي على عمود يحتوي على كمية الماده المتبقيه    واسمه itemcount   وعندي داتا جريد فيو تحتوى على الكميه المباعه
حيث عند عملية الحفظ يتم طرح الكميه في الداتا جريد من جدول itemcount        
يعني   الكمية المباعه في الداتا جريد  - itemcount   = iitemcount   

قمت بعمل الاتي :

Dim sqlQuery As String = "update  items set [itemcount]= [itemcount]-'" & (dgv.Rows(i).Cells(16).Value) & "'"
Dim cmd As New SqlCommand(sqlQuery, sqlconn)
If sqlconn.State <> ConnectionState.Open Then sqlconn.Open()
cmd.ExecuteNonQuery()
هل هذا الاجراء صحيح  ام هل هنالك طريقه افضل  لجلب قيمة الكميه الاصليه من الجدول ومن ثم طرح قيمها اخرى منها وتحديث الكمبيه الجديده
مع العلم ان الفجوال ستوديو يعطي انه من الممكن اين يحدث خطا   الصوره في المرفق

هل يوجد طريقه افضل ا و   تعديل على الكود

مع الشكر
الطرق التي اعرفها التي يستخدمها المبرمجون لهذا الامر


الطريقة الاولى طريقتك انت وهي صحيحة

الطريقة الثانية عن طريق عمل تريجر Trigger وبالتالي التريجر سيقوم داخل السيكوال سيرفر بتعديل كمية المواد في الجدول الذي تحدثت عنه عند كل عملية ادخال او تعديل او حذف في جدول الفواتير وفي حال لم تسخدم  Trigger  من قبل ابحث عنه في المنتدى وفي الويب هناك شرحات عنه

الطريقة الثالثة لا يوجد جدول يخزن فيه كمية المتبقي من كل مادة في كل مستودع او كمية المادة المباعة من كل مستودع ولكن عند اختيار مستودع ما هناك استعلام يبحث بكل الفواتير منذ بداية السنة المالية عن ويقوم بطرح وجمع المادة بحيث اذا كانت فاتورة مشتريات فهذا يعني زيادة الكمية الموجودة واذا كانت مبيعات فهذا يعني العكس
وبالتالي يستخرج كل مادة كم تبقى منها في كل مستودع او كم بيع منها من كل مستودع