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

نسخة كاملة : اضافة جدول تفاصيل فاتورة
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم عندما اقوم باضافة في جدول تفاصيل فاتورة يظهر هدا خطا ما الحل
كود مرفقا مع صورة خطا اثناء الحفظ 
اسماء اعمدة جدول Tbl_Order_detils
id_product,id_order,qty,price,amount
كود :
 Dim id_product, qty As Integer
       Dim price, amount As Decimal
       q1 = "insert into Tbl_Order_detils (id_product,id_order,qty,price,amount) values (@id_product,@id_order,@qty,@price,@amount)"

       For i = 0 To DGV_PRODUCT.RowCount - 1
           id_product = DGV_PRODUCT.Rows(i).Cells(0).Value
           qty = DGV_PRODUCT.Rows(i).Cells(2).Value
           price = DGV_PRODUCT.Rows(i).Cells(3).Value
           amount = DGV_PRODUCT.Rows(i).Cells(4).Value

           cmd.Parameters.Add(New SqlParameter("@id_product", SqlDbType.Int)).Value = id_product
           cmd.Parameters.Add(New SqlParameter("@id_order", SqlDbType.Int)).Value = ID_order
           cmd.Parameters.Add(New SqlParameter("@qty", SqlDbType.Int)).Value = qty
           cmd.Parameters.Add(New SqlParameter("@price", SqlDbType.Decimal)).Value = price
           cmd.Parameters.Add(New SqlParameter("@amount", SqlDbType.Decimal)).Value = amount
           cmd.ExecuteNonQuery()
       Next
       Module1.con.Close()
       MsgBox("تمت اضافة بنجاح")

(30-09-22, 06:36 PM)ali_ahmed12 كتب : [ -> ]السلام عليكم عندما اقوم باضافة في جدول تفاصيل فاتورة يظهر هدا خطا ما الحل
كود مرفقا مع صورة خطا اثناء الحفظ 
اسماء اعمدة جدول Tbl_Order_detils
id_product,id_order,qty,price,amount
كود :
 Dim id_product, qty As Integer
       Dim price, amount As Decimal
       q1 = "insert into Tbl_Order_detils (id_product,id_order,qty,price,amount) values (@id_product,@id_order,@qty,@price,@amount)"

       For i = 0 To DGV_PRODUCT.RowCount - 1
           id_product = DGV_PRODUCT.Rows(i).Cells(0).Value
           qty = DGV_PRODUCT.Rows(i).Cells(2).Value
           price = DGV_PRODUCT.Rows(i).Cells(3).Value
           amount = DGV_PRODUCT.Rows(i).Cells(4).Value

           cmd.Parameters.Add(New SqlParameter("@id_product", SqlDbType.Int)).Value = id_product
           cmd.Parameters.Add(New SqlParameter("@id_order", SqlDbType.Int)).Value = ID_order
           cmd.Parameters.Add(New SqlParameter("@qty", SqlDbType.Int)).Value = qty
           cmd.Parameters.Add(New SqlParameter("@price", SqlDbType.Decimal)).Value = price
           cmd.Parameters.Add(New SqlParameter("@amount", SqlDbType.Decimal)).Value = amount
           cmd.ExecuteNonQuery()
       Next
       Module1.con.Close()
       MsgBox("تمت اضافة بنجاح")

تم تعديل كود ولايزال خطا كوجود 
PHP كود :
  '====جلب معرف فاتورة
        cmd = New SqlCommand("select max(id_order) from Tbl_Orderes  ", Module1.con)
        Dim dr As SqlDataReader = cmd.ExecuteReader
        dr.Read()
        Dim ID_order As Integer = dr(0)
        dr.Close()



        ''اضافة تفاصيل فاتورة موجوده داتا قريد فيو
        Dim id_product, qty As Integer
        Dim price, amount As Decimal
        q1 = "insert into Tbl_Order_detils (id_productوid_order,qty,price,amount) values ('" & txtid.Text.Trim() & "'," & ID_order & ",'" & txtqty.Text.Trim() & "','" & txtprice.Text.Trim() & "','" & txtamount.Text.Trim() & "')"

        For i = 0 To DGV_PRODUCT.RowCount - 1
            id_product = DGV_PRODUCT.Rows(i).Cells(0).Value
            qty = DGV_PRODUCT.Rows(i).Cells(2).Value
            price = DGV_PRODUCT.Rows(i).Cells(3).Value
            amount = DGV_PRODUCT.Rows(i).Cells(4).Value
            cmd = New SqlCommand(q1, Module1.con)

            id_product = Val(txtid.Text)
            ID_order = dr(0)
            qty = Val(txtqty.Text)
            price = Val(txtprice.Text)
            amount = Val(txtamount.Text)
            cmd.ExecuteNonQuery()
        Next
        Module1.con.Close()
        MsgBox("تمت اضافة بنجاح")
    End Sub 
حسب رسالة الخطأ
يقول بأن المتغير الذي اسمه id_product
قد تم الإعلان عنه سابقا !
حاول أن تعدل السطر التالي :
Dim id_product, qty As Integer
وتجعله فقط هكذا :
Dim qty As Integer

وشوف النتيجة .
(30-09-22, 07:07 PM)أبو خالد الشكري كتب : [ -> ]حسب رسالة الخطأ
يقول بأن المتغير الذي اسمه  id_product
قد تم الإعلان عنه سابقا !
حاول أن تعدل السطر التالي :
Dim id_product, qty As Integer
وتجعله فقط هكذا :
Dim  qty As Integer

وشوف النتيجة .

Id_order مفتاح اجنبي في جدول الذي ادخل فيه ومفتاح رءيسي في جدول orders بي ماذا اعوض عليه هنا في جمله ادخال
عرفها بإضافة رقم واحد إليها  مثلاً : 
كود :
       Dim id_product1, qty1 As Integer
       Dim price1, amount1 As Decimal
ولا تنسى تعديلها في باقي الكود في نفس الاجراء (لا تعدلها خارج الاجراء).
(30-09-22, 07:58 PM)Taha Okla كتب : [ -> ]عرفها بإضافة رقم واحد إليها  مثلاً : 
كود :
       Dim id_product1, qty1 As Integer
       Dim price1, amount1 As Decimal
ولا تنسى تعديلها في باقي الكود في نفس الاجراء (لا تعدلها خارج الاجراء).

id_order مفتاح اجنبي في جدول الذي ادخل فيه ماذا ادخل فيه في جملة ادخال
نفس الشيء أضف عرفه بشيء مميز مثلا باضافة الرقم واحد :

كود :
Dim ID_order1 As Integer = dr(0)


التعديل يكون للمتغيرات المعرفة وليس داخل قاعدة البيانات ولا داخل جمل الاستعلام..

=============
نصيحة :
خصص من وقتك ساعة إلى أكبر قدر ممكن من الساعات لتعلم الأساسيات،
فإن لن تفعل ستتعذب كثيراً في هذه سواء في اللغة أو غيرها..
ولن تجد دوماً من يرشدك للحل،
حتى أن الحلول التي نقدمها لك ليس بالضرورة أن تكون صحيحة لأننا لا نقف على المشكلة كما تقف عليها..