منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب
هناك خطأ فى هذا الكود - نسخة قابلة للطباعة

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



هناك خطأ فى هذا الكود - خالد كامل1 - 28-10-18

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


كود :
Private Sub importid_DropDown1(ByVal sender As Object, ByVal e As System.EventArgs) Handles importid.DropDown
       fillcmb_importers(importid)
       importid.SelectedIndex = -1
   End Sub
   Public Sub Insert_products(ByVal productid As Int32, ByVal productbarcode As String, ByVal productname As String, ByVal catid As Int32, ByVal unitid As Int32, ByVal qty As Double, ByVal priceg As Double, ByVal priceb As Double, ByVal importid As Int32)
       Dim Cmd As New SqlCommand
       With Cmd
           .Connection = con
           .CommandType = CommandType.Text
           .CommandText = "Insert Into products ( productid,productbarcode,productname,catid,unitid,qty,briceg,briceb,importid)values(@productid,@productbarcode,@productname,@catid,@unitid,@qty,@priceg,@priceb,@importid)"
           .Parameters.Clear()
           .Parameters.AddWithValue("@productid", SqlDbType.Int).Value = productid
           .Parameters.AddWithValue("@productbarcode", SqlDbType.VarChar).Value = productbarcode
           .Parameters.AddWithValue("@productname", SqlDbType.VarChar).Value = productname
           .Parameters.AddWithValue("@catid", SqlDbType.Int).Value = catid
           .Parameters.AddWithValue("@unitid", SqlDbType.Int).Value = unitid
           .Parameters.AddWithValue("@qty", SqlDbType.Decimal).Value = qty
           .Parameters.AddWithValue("@priceg", SqlDbType.Decimal).Value = priceg
           .Parameters.AddWithValue("@priceb", SqlDbType.Decimal).Value = priceb
           .Parameters.AddWithValue("@importid", SqlDbType.Int).Value = importid
       End With
       If con.State = 1 Then con.Close()
       con.Open()
       Cmd.ExecuteNonQuery()
       con.Close()
       MsgBox("تم إضافة السجل بنجاح", MsgBoxStyle.Information, "حفظ")
       Cmd = Nothing
   End Sub



   Private Sub save_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles save.Click
       Dim dt1 As New DataTable
       Dim cmd As New SqlCommand("select * FROM PRODUCTS WHERE PRODUCTBARCODE = '" + barcode.Text + "'", con)
       con.Open()
       Dim da1 As New SqlDataAdapter(cmd)
       da1.Fill(dt1)
       If dt1.Rows.Count > 0 Then
           Dim A As Integer = Val(qty.Text)
           Dim CmdUpdate As New SqlCommand
           With CmdUpdate
               .Connection = con
               .CommandType = CommandType.Text
               .CommandText = "UPDATE PRODUCTS SET QTY = QTY + " & A & "  WHERE PRODUCtRBARCODE = '" & barcode.Text & "'"

           End With
           Try
               If con.State = 1 Then con.Close()
               con.Open()
               CmdUpdate.ExecuteNonQuery()
               con.Close()
               MsgBox("اسم المادة موجود مسبقا تمت عمليه تحديث الكميه بنجاح", MsgBoxStyle.Information, "تحديث كمية الماده")

               CmdUpdate = Nothing
               ClearControls()
               proid.Text = getmaxid("Products", "ProductID")
               store.SelectAll_products(store.dgv4)


           Catch ex As Exception
               con.Close()
               MsgBox(Err.Description, MsgBoxStyle.Information)
           Finally
               If con.State = ConnectionState.Open Then con.Close()

           End Try

       Else
           Insert_products(proid.Text, barcode.Text, proname.Text, catid.SelectedValue, unitid.SelectedValue, qty.Text, priceg.Text, priceb.Text, importid.SelectedValue)
       End If
       ClearControls()
       proid.Text = getmaxid("PRODUCTS", "productid")
   End Sub

   Private Sub exite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles exite.Click
       Me.Show()
   End Sub
 وهذه صورة الخطأ الذى يظهر



RE: هناك خطأ فى هذا الكود - elgokr - 28-10-18

المشكلة لديك ليس من جانب الكود
المشكلة فى القيمة المرسلة لاتمام اضافتها بقاعدة البيانات

حيث ان النوع معرف String وهو بحاجة لان تجعل قيمتها Double
المشكلة هتكون فى الاجزاء التى تخص الارقام و والمبالغ

راجع القيمة المدخلة وسيتم حل المشكلة

تحياتى لك
وتمنياتى لك التوفيق



RE: هناك خطأ فى هذا الكود - خالد كامل1 - 29-10-18

الف شكر اخى الجوكر ولكم ظهر لى خطا اخر موضح فى الصوؤة




RE: هناك خطأ فى هذا الكود - mero5000 - 29-10-18

جرب SelectedValue.Tostring()
للقيمة العشرية او الرقمية


RE: هناك خطأ فى هذا الكود - elgokr - 29-10-18

(29-10-18, 03:20 AM)خالد كامل1 كتب : الف شكر اخى الجوكر ولكم ظهر لى خطا اخر موضح فى الصوؤة



الشكر لله والحمد لله

والحمد لله على كل حال

بخصوص الصورة بالاعلى فهنا يوجد حقل من نوع رقم ولكن لا يحتوى على قيمة او يبدو انها قيمة نصية فارغة

مثل

كود :
ii = 0

انت جعلتها 

كود :
ii = ""

الفكرة من الوصف هو توضيح كمثال ما يعنيه الخطاء
وحيث ان ii من نوع رقم

حيث ان الحقل اجبارى وليس اختيارى لتكون بها قيمة فعلية
فيجب مراجعة القيمة لما يخص ذلك واعتقد ان الامر سيكون فى الترقيم للعمود ( productid )

حتى تتثنى توضح لنا الصورة بدلاً مو وضع صورة لرسالة الخطاء
ارفق صورة لكل من :
1- صورة الشاشة وهى تحتوى على البيانات ( القيمة )
2- صورة لرسالة الخطاء

حتى توضح الصورة كاملاً لكل قيمة تتم تعبئتها فى شاشة البرنامج قبل تنفيذ الامر وظهور الرسالة

تحياتى لك
وتمنياتى لك التوفيق