تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
ماهو سبب ظهور الجملة عند الحفظ من الداتاقريدفيو
#1
السلام عليكم ورحمة الله وبركاته
إخواني ظهرت لي جملة ولم أستطع أن أفهم مالمقصود بها عندما أريد أن أحفظ البيانات من الداتاقريد فيو لأكثر من سطر تظهر لي هذه الجملة
The parameterized query '(@Period1 nvarchar(15),@Shoba1 nvarchar(10),@Mada1 nvarchar(30),' expects the parameter '@Hawia', which was not supplied

وهذا هو الكود المستخدم علماً أن الكود أستخدمه في مرات كثيرة وهو ناجح 100 \100 ولكن هذه المرة لاأعرف  المشكلة 

      Dim i As Integer
        For i = 0 To DataGridView1.Rows.Count
            Dim sqlq As String = "insert into Entezar1 values(@Hawia,@Period1,@Shoba1,@Mada1,@Teacher_Montzer,@signture,@Note,@list,@Teacher_Ghiab,@Day1,@Date1,@Date_Hijri)"

            'Dim sqlq As String = "insert into Entezar1 values(@Teacher_Montzer,@signture,@Note,@list,@Hawia,@Teacher_Ghiab,@Day1,@Date1,@Date_Hijri)"
            Dim sqlcmd As New SqlCommand(sqlq, Sqlcon)

            sqlcmd.Parameters.Add(New SqlParameter("@Period1", SqlDbType.NVarChar, 15) With {.Value = DataGridView1.Rows(i).Cells(0).Value})
            sqlcmd.Parameters.Add(New SqlParameter("@Shoba1", SqlDbType.NVarChar, 10) With {.Value = DataGridView1.Rows(i).Cells(1).Value})
            sqlcmd.Parameters.Add(New SqlParameter("@Mada1", SqlDbType.NVarChar, 30) With {.Value = DataGridView1.Rows(i).Cells(2).Value})
            sqlcmd.Parameters.Add(New SqlParameter("@Teacher_Montzer", SqlDbType.NVarChar, 80) With {.Value = DataGridView1.Rows(i).Cells(3).Value})
            sqlcmd.Parameters.Add(New SqlParameter("@signture", SqlDbType.NVarChar, 50) With {.Value = ""})
            sqlcmd.Parameters.Add(New SqlParameter("@Note", SqlDbType.NVarChar, 80) With {.Value = ""})
            sqlcmd.Parameters.Add(New SqlParameter("@list", SqlDbType.NVarChar, 10) With {.Value = DataGridView1.Rows(i).Cells(6).Value.ToString})
            sqlcmd.Parameters.Add(New SqlParameter("@Hawia", SqlDbType.NVarChar, 15) With {.Value = DataGridView1.Rows(i).Cells(7).Value})
            sqlcmd.Parameters.Add(New SqlParameter("@Teacher_Ghiab", SqlDbType.NVarChar, 15) With {.Value = DataGridView1.Rows(i).Cells(8).Value})
            sqlcmd.Parameters.Add(New SqlParameter("@Day1", SqlDbType.NVarChar, 15) With {.Value = DataGridView1.Rows(i).Cells(10).Value})
            sqlcmd.Parameters.Add(New SqlParameter("@Date1", SqlDbType.NVarChar, 30) With {.Value = DataGridView1.Rows(i).Cells(10).Value})
            sqlcmd.Parameters.Add(New SqlParameter("@date_Hijri", SqlDbType.NVarChar, 30) With {.Value = DateTimePicker1.Text})


            Sqlcon.Open()
            sqlcmd.ExecuteNonQuery()
            Sqlcon.Close()
            MsgBox("تم الحفظ ")
        Next

آسف على الإطالة 


لكم جزيل الشكر 
دمتم بود
الرد }}
تم الشكر بواسطة: ابراهيم ايبو
#2
كود :
 For i = 0 To DataGridView1.Rows.Count -1
تاكد من البارامتر hawıa وحاول جعل تسلسل القيم مثل الباراميترات وتاكد من نوع بيانات الحقول
شي اخر انا لم اجربه من قبل انت لم تذكر الحقول مباشرة كتبت values ثم القيم بالباراميترات
اعمل الخير وأجرك لا تنتظره فالله خير من إليك يرده
البرمجة ليست مجرد كود بل هي منهج تفكير منطقي لحل المشكلات







الرد }}
تم الشكر بواسطة: جيولوجي مبتدئ , sendbad100
#3
السلام عليكم ورحمة الله وبركاته
 أولاً وقبل كل شيء أشكرك على سرعة ردك وقد أحرجتني أشد الإحراج وبارك الله لك في عمرك ورزقك 

حاولت أستاذي الكريم بما قلت لي ولكن نفس المشكلة 
عندي سؤال  هل الممكن السبب أن الحقول السابقة ماعدا رقم الهوية (( هي موجودة في الداتاقريدفيو على هيئة combobox   ومرتبطة بجدول في قاعدة البيانات وليست على هيئة أعمدة text 
  
لك جزيل الشكر 
دمت بود

السلام عليكم ورحمة الله وبركاته
أستاذ إبراهيم  جربت نفس الكود على داتاقريد فيو أعمدته textbox  وتم الحفظ على أفضل وجه  وأضفت لها try catch


لك جزيل الشكر 
دمت بود
الرد }}
تم الشكر بواسطة:



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم