تقييم الموضوع :
  • 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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  [VB.NET] مساعدة في اظهار معطيات من datagrid الى textbox ومن form1 الى form2 tahaayyoub 2 109 01-02-20, 04:43 PM
آخر رد: egypt 2020
  [VB.NET] مشكل في تنسيق 00/0000، 19/0001 tahaayyoub 1 113 08-01-20, 05:09 AM
آخر رد: اسامه الهرماوي
  انشاء استعلام عملية حسابيه في Sql server momani33 4 186 02-01-20, 07:39 PM
آخر رد: momani33
  [VB.NET] مشكل في التكرار farfour 1 156 24-12-19, 03:27 PM
آخر رد: محمد كريّم
  [VB.NET] مشكل في flowlayoutpanel trakktour 2 198 13-12-19, 02:58 PM
آخر رد: trakktour
  [VB.NET] مشكل في listview trakktour 3 216 02-12-19, 12:21 PM
آخر رد: trakktour
  [VB.NET] مشكل في اظهار قيمة trakktour 4 246 29-11-19, 09:16 PM
آخر رد: trakktour
  [VB.NET] مشكل في regex trakktour 7 313 18-11-19, 01:39 AM
آخر رد: معاند الحظ
  [SQL] سؤالين بخصوص SQL server اسامه الهرماوي 2 182 10-11-19, 02:46 AM
آخر رد: boudyonline
  سؤال بخصوص sql server saberzinoubi 1 158 09-11-19, 05:02 PM
آخر رد: اسامه الهرماوي

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


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