تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] مشكل في اصافة سطر من datagrid الى الجدول في sql server
#1
ممكن مساعدة
Private Sub ToolStripButton6_Click(sender As Object, e As EventArgs) Handles ToolStripButton6.Click
        Connect()
        Dim Str As String
        Dim cmd As New SqlCommand
        For index As Integer = 0 To DataGridView1.RowCount - 1
            cmd.Connection = Connection
            Str = "insert into liste_pv(id_proces_v,nom_pv,attab values (@1,@2,@3)"
            cmd.CommandText = Str
            cmd.Connection = Connection
            cmd.Parameters.AddWithValue("@1", DataGridView1.Rows(Index).Cells(0).Value)
            cmd.Parameters.AddWithValue("@2", DataGridView1.Rows(index).Cells(1).Value)
            cmd.Parameters.AddWithValue("@3", DataGridView1.Rows(index).Cells(2).Value)
            cmd.ExecuteNonQuery()
            cmd.Dispose()
            Connection.Close()
            DataGridView1.Refresh()
        Next
        MsgBox("تمت عمليةالحفظ ")
    End Sub
تظهر رسالة الخطا التالية
System.Data.SqlClient.SqlException: 'Incorrect syntax near the keyword 'values'.'
بارك الله فيكم
الرد
تم الشكر بواسطة: egypt 2020
#2
(16-01-20, 11:14 PM)tahaayyoub كتب : ممكن مساعدة
Private Sub ToolStripButton6_Click(sender As Object, e As EventArgs) Handles ToolStripButton6.Click
        Connect()
        Dim Str As String
        Dim cmd As New SqlCommand
        For index As Integer = 0 To DataGridView1.RowCount - 1
            cmd.Connection = Connection
            Str = "insert into liste_pv(id_proces_v,nom_pv,attab values (@1,@2,@3)"
            cmd.CommandText = Str
            cmd.Connection = Connection
            cmd.Parameters.AddWithValue("@1", DataGridView1.Rows(Index).Cells(0).Value)
            cmd.Parameters.AddWithValue("@2", DataGridView1.Rows(index).Cells(1).Value)
            cmd.Parameters.AddWithValue("@3", DataGridView1.Rows(index).Cells(2).Value)
            cmd.ExecuteNonQuery()
            cmd.Dispose()
            Connection.Close()
            DataGridView1.Refresh()
        Next
        MsgBox("تمت عمليةالحفظ ")
    End Sub
تظهر رسالة الخطا التالية
System.Data.SqlClient.SqlException: 'Incorrect syntax near the keyword 'values'.'
بارك الله فيكم

احذف البراميتر في الحلقة التكرارية قبل الاضافة ()cmd.Parameters.clear

احذف كل دة من الحلقة التكرارية 

            cmd.Dispose()
            Connection.Close()
            DataGridView1.Refresh()

ضعة بعد انتهاء الحلقة 
الرد
#3
إغلق القوس قبل VALUES
تحياتي
الرد
تم الشكر بواسطة: جميل4 , جميل4 , tahaayyoub , baha
#4
ما ذكره الأخ egypt 2020 صحيح يجب حذف البراميترات
ما ذكره الأخ عبد العزيز البسكري صحيح من نسيانك وضع القوس قبل values
وهذا تعديل مختصر للكود
PHP كود :
Connect()
Dim Str "INSERT INTO liste_pv(id_proces_v, nom_pv, attab) VALUES (@c0, @c1, @c2)"
Dim cmd As New SqlCommand(StrConnection)
For 
Each row As DataGridViewRow In DataGridView1.Rows
    cmd
.Parameters.Clear()
    
cmd.Parameters.AddWithValue("@c0"row.Cells(0).Value)
    
cmd.Parameters.AddWithValue("@c1"row.Cells(1).Value)
    
cmd.Parameters.AddWithValue("@c2"row.Cells(2).Value)
    
cmd.ExecuteNonQuery()
Next
MsgBox
("تمت عمليةالحفظ "
الرد
تم الشكر بواسطة: tahaayyoub , عبد العزيز البسكري , baha
#5
حذفت البرميتر واضقت قوس عند نهاية values
طلعت الرسالة
System.Data.SqlClient.SqlException: 'Violation of PRIMARY KEY constraint 'PK_liste_pv'. Cannot insert duplicate key in object 'dbo.liste_pv'. The duplicate key value is (1).
The statement has been terminated.'
علما ادخلت قيمة (34) في الحق الاول مفتاح اساسي للجدول
وهو رقم الترتيب الموالي
حاولت مرة ثانية من دون ادخال اي قيمة في الحقل الاول ولكن نفس الرسالة
الرد
تم الشكر بواسطة: جميل4 , عبد العزيز البسكري
#6
لديك حقل مفتاح رئيسي يجب أن لا يتكرر،
إذا كان هذا الحقل ترقيم تلقائي لا تكتبه في Str ولا تضع له باراميتر
الرد
#7
احترامي للجميع 

اولا الغي بارميتر الخاص بحقل  id 
 وعدل جدول قاعدة البيانات بحقل id لترقيم تلقائي .

واستخدم كود  استاذ جميل 4  مع تعديل بسيط 



كود :
Connect()
Dim Str = "INSERT INTO liste_pv( nom_pv, attab) VALUES ( @nom_pv, @attab)"
dim cmd As New SqlCommand(Str, Connection)
لو الاتصال لم يتم فتحة ' con.open
For Each row As DataGridViewRow In DataGridView1.Rows
   cmd.Parameters.Clear()

   cmd.Parameters.AddWithValue("@nom_pv", row.Cells(1).Value)
   cmd.Parameters.AddWithValue("@attab", row.Cells(2).Value)

 
cmd.ExecuteNonQuery()

Next

con.close

MsgBox("تمت عمليةالحفظ ")
اي خطا بعد السابق راجع جيدا اسماء الحقول بقاعدة البيانات .

ونصيحة شخصية اسم الحقول خلية ذي كدة عشان تفهم الحقول هضيف فيها اية name_student  لانك ممكن تعمل مشكلة اخري خاصة بالكلمات المحجوزة .
الرد
تم الشكر بواسطة: جميل4 , عبد العزيز البسكري , baha , tahaayyoub


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  اضافة ملف pdf الى قاعدة بيانات sql server 2012 moh developer 1 21 منذ 3 ساعة مضت
آخر رد: kiki
  عمليات الاضافة والتعديل على قاعدة بيانات sql server 2012 kewely 2 69 19-09-20, 07:45 PM
آخر رد: kewely
  [كود] تصحيح او تعديل كود البحث في نص مشكل عبد الهادي بهاب 6 221 16-09-20, 03:54 PM
آخر رد: عبد الهادي بهاب
  مشكلة عند حفظ البيانات في قاعدة بيانات SQL Server momani33 4 199 08-09-20, 03:44 PM
آخر رد: Hasaneen
  [VB.NET] محتاج كود عرض اكثر من جدول فى داتا جرد فيو واحدة عن طريق اختيار الجدول من كومبوكس mohammed1994 1 182 01-09-20, 04:56 PM
آخر رد: اسامه الهرماوي
  [سؤال] مشكل الوضع في حالة تكبير Maximized عبد الهادي بهاب 0 132 24-08-20, 10:09 PM
آخر رد: عبد الهادي بهاب
  مشكل عدم اكتمال تثبيت كرستور ريبورت في الجهاز rochdi191 2 207 16-08-20, 02:48 AM
آخر رد: خالد كامل1
  حلل لمشكلة الsql server واللغه العربيه ارجوكم Hosam Ashraf Elwakel 1 206 12-08-20, 03:39 AM
آخر رد: boudyonline
  تعديل على الجدول رقم 2 العيدروس 6 327 09-08-20, 03:52 AM
آخر رد: العيدروس
  قصة Sql Server وعلامة الاستفهام alshandodi 3 381 29-07-20, 04:21 PM
آخر رد: alshandodi

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


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