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


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  السلام عليكم اريد استخدام هذا الجدول مع كتابة المسافه select*from patent data ahmedhhh2 4 123 22-11-21, 07:31 AM
آخر رد: ahmedhhh2
  مساعدة في مشكل للرقم السري لقاعدة البيانات hammadi 1 116 21-11-21, 06:46 PM
آخر رد: asemshahen5
  السلام عليكم مشكل ارقني ahmedbezia 2 151 16-11-21, 02:06 AM
آخر رد: mrfenix93
Photo مشكل في الطباعة hammadi 0 110 14-11-21, 06:17 PM
آخر رد: hammadi
  احتاج مساعدة في التعديل على كود شغال تمام في wpf اما winform يظهر مشكل farfour 3 238 10-11-21, 12:27 AM
آخر رد: mrfenix93
  [VB.NET] فكرة حتى أجعل أعمدة الجدول طويلة في ReportViewer sniperjawadino 0 122 07-11-21, 12:44 AM
آخر رد: sniperjawadino
  كيفية البحث عن رقم داخل حقل في الجدول عبدالكريم برشدان 6 320 03-11-21, 09:01 PM
آخر رد: عبدالكريم برشدان
  مشكل في listview crazykinko 11 1,303 02-11-21, 10:34 PM
آخر رد: crazykinko
  [سؤال] كيفية ادراج ارقام متسلسلة لحقل في جدول مكون من 100 صف sql server ismaeel 0 182 24-10-21, 05:00 PM
آخر رد: ismaeel
  [سؤال] اريد خانة تعديل فقط عامود واحد من الجدول مجـ متعلم ـرد 7 389 23-10-21, 02:47 AM
آخر رد: ابراهيم ايبو

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


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