منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
[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=32877)



استفسار عن خطأ في كود الحفظ - Hassan.syria - 09-01-20

اساتذتي سؤال 
يوجد لدي زر وهو خاص بالحفظ وضمن كود الحفظ هنالك عدة شروط
ولكن عند الضغط على الزر يقوم بتنفيذ احد الشروط ، ويبقى البرنامج ينفذ هذا الشرط إلى ان اقوم باغلاق البرنامج وإعادة تشغيله يقوم بتنفيذ شرط آخر .
علما انني استسخدم If 
واقوم باغلاق الاتصال con.close و form.fill


RE: استفسار - علي بنيان - 09-01-20

السلام عليكم

لو تخلينا الكود حتى نشوف الخطأ وين


RE: استفسار - Hassan.syria - 09-01-20

Private Sub Button1_Click(ByVal sender
As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try


If ComboBox1.Text = "" Then
MsgBox(" الرجاء إدخال اسم المعمل / المستودع")
ElseIf TextBox1.ReadOnly = False And TextBox1.Text = "" Then
MsgBox(" الرجاء إدخال رقم الكتاب")
ElseIf TextBox2.ReadOnly = False And TextBox2.Text = "" Then
MsgBox(" الرجاء إدخال اتاريخ الكتاب")
ElseIf TextBox3.ReadOnly = False And TextBox3.Text = "" Then
MsgBox(" الرجاء إدخال عدد اللصاقات")
ElseIf TextBox4.ReadOnly = False And TextBox4.Text = "" Then
MsgBox(" الرجاء إدخال تاريخ التسليم")
ElseIf CDate(TextBox2.Text.Trim) > CDate(TextBox4.Text.Trim) Then
MsgBox(" خطأ : تاريخ التسليم أقدم من تاريخ الكتاب")
Else
Con.Open()

Dim CM As New SqlCommand("select * from Table_3 where NAMEWAREHOUSE like '%" & ComboBox1.Text.Trim & "%' AND NAMEBOX = '" & Format(TextBox1.Text.Trim) & "' AND DATABOX = '" & Format(TextBox2.Text.Trim) & "' AND NUMDrug = " & Val(Trim(TextBox3.Text)), Con
Dim Ca As New SqlCommand("select * from Table_3 where NAMEWAREHOUSE like '%" & ComboBox1.Text.Trim & "%' AND NAMEBOX = '" & Format(TextBox1.Text.Trim) & "' AND DATABOX = '" & Format(TextBox2.Text.Trim) & "' AND NUMDrug < " & Val(Trim(TextBox3.Text)), Con)
Dim Cs As New SqlCommand("select * from Table_3 where NAMEWAREHOUSE like '%" & ComboBox1.Text.Trim & "%' AND NAMEBOX = '" & Format(TextBox1.Text.Trim) & "' AND DATABOX = '" & Format(TextBox2.Text.Trim) & "' AND NUMDrug > " & Val(Trim(TextBox3.Text)), Con)
Dim CO As New SqlCommand("select * from Table_3 where NAMEWAREHOUSE like '%" & ComboBox1.Text.Trim & "%' AND NAMEBOX = '" & Format(TextBox1.Text.Trim) & "' AND DATABOX = '" & Format(TextBox2.Text.Trim) & "' AND NUMDrug = " & Val(Trim(TextBox3.Text)), Con)

If CM.ExecuteScalar > 0 Then
Dim op As SqlDataReader
op = CM.ExecuteReader()
While op.Read
Me.TextBox8.Text = op(0)
End While
Con.Close()
cmd = New SqlCommand("DELETE Table_3 Where ID ='" & TextBox8.Text & "'", Con)
Con.Open()
cmd.ExecuteNonQuery()
Dim SQL As String = "Insert Into Table_1 Values('" & Me.ComboBox1.Text & "', '" & Me.TextBox1.Text & "','" & Me.TextBox2.Text & "','" & Me.TextBox3.Text & "','" & Me.TextBox4.Text & "','" & Me.TextBox5.Text & "')"
cmd = New SqlCommand(SQL, Con)
cmd.ExecuteNonQuery()
MsgBox("تم الاضافة بنجاح", MsgBoxStyle.Information)
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
ComboBox1.Focus()
Con.Close()

ElseIf Ca.ExecuteScalar > 0 Then
MsgBox("عدد اللصاقات المسلمة أكبر من العدد المطلوب يرجى التعديل ")
TextBox3.Text = ""
Con.Close()
ElseIf Cs.ExecuteScalar > 0 Then
Dim op As SqlDataReader
op = Cs.ExecuteReader()
While op.Read
Me.TextBox8.Text = op(0)
Me.TextBox6.Text = op(5)
End While
TextBox7.Text = TextBox6.Text - TextBox3.Text
Con.Close()
cmd = New SqlCommand("Update Table_3 set NUMDRUGTO = '" & Val(Trim(TextBox7.Text)) & "' Where ID ='" & TextBox8.Text & "'", Con)
Con.Open()
cmd.ExecuteNonQuery()
Dim SQL As String = "Insert Into Table_1 Values('" & Me.ComboBox1.Text & "', '" & Me.TextBox1.Text & "','" & Me.TextBox2.Text & "','" & Me.TextBox3.Text & "','" & Me.TextBox4.Text & "','" & Me.TextBox5.Text & "')"
cmd = New SqlCommand(SQL, Con)
cmd.ExecuteNonQuery()
MsgBox("تم الاضافة بنجاح", MsgBoxStyle.Information)
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox6.Text = ""
TextBox7.Text = ""
TextBox8.Text = ""
ComboBox1.Focus()
Con.Close()

ElseIf CO.ExecuteScalar < 0 Then
MsgBox("وصل الاستلام غير صحيح , يرجى إضافة البيانات في المستودع قبل التسليم ", vbExclamation, vbOKCancel)
TextBox1.Text = ""
TextBox2.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
Con.Close()

End If
End If

Catch ex As Exception
MsgBox("خطىء في كود الحفظ !", MsgBoxStyle.Critical)
End Try
Form2_Load()

End Sub
هذا برمجة زر الحفظ وفيه عدة شروط


RE: استفسار - علي بنيان - 10-01-20

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


RE: استفسار - Hassan.syria - 10-01-20

صحيح وانا هذا لبدي ياه اذا تحقق شرط ان ينفذه ويخرج من If بس المشكلة بتفصيل
انا لدي textbox ادخل فيه بيانات ويوجد textbox خاص بالكميات اضع فيه رقم ولنفترض ١٠٠٠ فا عند الضغط على زر الحفظ يقوم بالبحث في sql اذا وجد الرقم المدخل يشابه للرقم الموجود في SQL يقوم بحذف السجل واذا وجد الرقم المدخل اصغر من الرقم الموجود في sql يقوم بعملية الطرح وحفظ الناتج الجديد بدل القديم في SQL ولكن المشكلة هي في SQL يوجد رقم ١٠٠٠ وانا قمت بإدخال الرقم ٥٠٠ في textbox فيقوم البرنامج بعملية الطرح فيصبح الرقم الموجود في SQL هو ٥٠٠ بدل ال ١٠٠٠ الى هنا يعمل الكود بشكل صحيح ولكن عند ادخال الرقم ٥٠٠ في textbox يجب ان يقوم البرنامج بحذف السجل لان الرقمان في textbox و ال SQL متشابهان ولكن هو لا يقوم بالحذف إنما بطرح اي انه ثبت على شرط المنفذ اولا ، ولا يعمل بشكل الصحيح الا اذا قمت بإغلاق البرنامج واعادة تشغيله
ارجوا ان اكون اوصلت مشكلتي بشكل صحيح


RE: استفسار عن خطأ في كود الحفظ - Hassan.syria - 12-01-20

الا يوجد حل لمشكلتي أساتذتي


RE: استفسار عن خطأ في كود الحفظ - Hassan.syria - 13-01-20

لقد قمت بإعادة قراءة الكود ، وتبين وجود خطأ في تسمية حقل في sql