منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[VB.NET] محتاج تعديل الاكواد . - نسخة قابلة للطباعة

+- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb)
+-- قسم : قسم لغة الفيجوال بيسك VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=182)
+--- قسم : قسم اسئلة VB.NET (http://vb4arb.com/vb/forumdisplay.php?fid=183)
+--- الموضوع : [VB.NET] محتاج تعديل الاكواد . (/showthread.php?tid=17697)



محتاج تعديل الاكواد . - 0theghost0 - 17-10-16

السلام عليكم

الكود وظيفته فقط الحفظ واريد اضافة عليه بعض الاشياء الجديدة

من ضمنها ان الكمية الموجودة لغرض معين 10 حبات
جاء زبون يشتري 5 حبات
البرنامج يطرح 10 - 5 = 5
فيقرأ البرنامج المتوفر فقط 5 حبات

والشيء الثاني بعد عملية الطرح واضهار المتوفر الحالي
جاء زبون اخر ويريد شراء نفس الغرض 6 حبات
فالبرنامج يقوم بإظهار مسج ويخبرك بان المتوفر 5 حبات ولا يستطيع تنفيذ العملية بسبب عدم توفر 6 حبات

الكود الى اريد تعديله :

كود :
Using conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\Database1.accdb;Persist Security Info=False;")
           conn.Open()
           For Each row As DataGridViewRow In DataGridView1.Rows
               If row.Cells(0).Value Is Nothing Then Exit For
               Dim sql As String =
                   "INSERT INTO [Rent]" &
                   "( Cus_ID, Cus_Name, Cus_Private_Number, Cus_Address, Cus_Car, Cus_Telephone_Number, Cus_Balance, Equ_Name, Equ_Price, Equ_Qantity, Rent_Date )" &
                   "VALUES" &
                   "( @Cus_ID, @Cus_Name, @Cus_Private_Number, @Cus_Address, @Cus_Car, @Cus_Telephone_Number, @Cus_Balance, @Equ_Name, @Equ_Price, @Equ_Qantity, @Rent_Date )"
               Using cmd As New OleDbCommand(sql, conn)
                   cmd.Parameters.AddWithValue("@Cus_ID", ComboBox1.Text.ToString)
                   cmd.Parameters.AddWithValue("@Cus_Name", TextBox1.Text.ToString)
                   cmd.Parameters.AddWithValue("@Cus_Private_Number", TextBox2.Text.ToString)
                   cmd.Parameters.AddWithValue("@Cus_Address", TextBox3.Text.ToString)
                   cmd.Parameters.AddWithValue("@Cus_Car", TextBox4.Text.ToString)
                   cmd.Parameters.AddWithValue("@Cus_Telephone_Number", TextBox5.Text.ToString)
                   cmd.Parameters.AddWithValue("@Cus_Balance", TextBox6.Text.ToString)
                   cmd.Parameters.AddWithValue("@Equ_Name", row.Cells(0).Value.ToString)
                   cmd.Parameters.AddWithValue("@Equ_Price", row.Cells(1).Value.ToString)
                   cmd.Parameters.AddWithValue("@Equ_Qantity", row.Cells(2).Value.ToString)
                   cmd.Parameters.AddWithValue("@Rent_Date", DateTimePicker1.Value.ToString)
                   cmd.ExecuteNonQuery()
               End Using
           Next
           conn.Close()
       End Using
       MessageBox.Show("We have been successfully Date", "Congratulations", MessageBoxButtons.OK, MessageBoxIcon.Information)
   End Sub



RE: محتاج تعديل الاكواد . - mhmd_911 - 17-10-16

اعمل دالة تعيد لك الكمية فقط، واستدعيها قبل تنفيذ العملية وقارن وبعدها قرر اما يطرح الكمية او يظهر رسالة.


RE: محتاج تعديل الاكواد . - 0theghost0 - 18-10-16

ممكن مساعدة اخي ؟؟


RE: محتاج تعديل الاكواد . - mhmd_911 - 18-10-16

هذه دالة من احد الدروس وضيفتها ترجع قيمة بمدلول عمود وهي هنا تعيد كمية بمدلول عمود id
PHP كود :
Public Function GetQuantity(id As Integer) As Integer
    Dim cmd 
As New OleDbCommand(String.Format("SELECT [Qty] FROM [Items] WHERE [ID]={0}"id), cnn)
    
cnn.Open()
    
Dim ret As Integer cmd.ExecuteScalar
    cnn
.Close()
    Return 
ret
End 
Function 

وبنفس الاسلوب عملت لك دالة تطرح من الكمية
PHP كود :
Public Function SubQuantity(id As Integerqty As Integer) As Boolean
    Dim cmd 
As New OleDbCommand(String.Format("UPDATE [Items] SET [Qty]=([Qty]-{0}) WHERE [ID]={1}"qtyid), cnn)
    
cnn.Open()
    
Dim ret As Integer cmd.ExecuteNonQuery()
    
cnn.Close()
    If 
ret 0 Then Return True
End 
Function 

الحين اللي عليك تستدعي الدالة GetQuantity عشان تعرف الكمية المتوفرة وعندها قرر هل تنفذ الدالة SubQuantity والا تظهر رسالة ان الكمية غير كافية