تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] ساعدوني في حل مشكلة حذف سطر من جدول
#1
مشكلة في حذف سطر من جدول
الجدول اسمه documents
المفتاح id_doc
النوع Nvarchar
*************************
 Private Sub DeleteRecord()
        Try
            Dim RowsAffected As Integer = 0
            Connect()
            con.Open()
            Dim cq As String = "delete from documents where id_doc=" & TextBox1.Text & ""
            cmd = New SqlCommand(cq)
            cmd.Connection = con
            MsgBox("sava")
            RowsAffected = cmd.ExecuteNonQuery()
            If RowsAffected > 0 Then
                MessageBox.Show("تم حذف طرف من الجدول", "السجل", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
                VoirAffaires1.DataGridView2.Refresh()
            Else
                MessageBox.Show("المعني غير موجود", "حاول", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
            End If
            If con.State = ConnectionState.Open Then
                con.Close()

            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub
********************************************
تظهر رسالة الخطا التالي
********************************************
convertion failed when converting the nvarchar value '20/0001' to data type int 
علما اني ان الجدول به ترقيم خاص على شكل سنة/ترقيم تسلسلي  20/0001 وهو من النوع NVARCHAR
السطر المراد حذفه ماخوذ من داتا قريد في فورم اخر


الرجاء المساعدة
الرد
تم الشكر بواسطة: egypt 2020 , egypt 2020
#2
(01-02-20, 03:37 PM)tahaayyoub كتب : مشكلة في حذف سطر من جدول
الجدول اسمه documents
المفتاح id_doc
النوع Nvarchar
*************************
 Private Sub DeleteRecord()
        Try
            Dim RowsAffected As Integer = 0
            Connect()
            con.Open()
            Dim cq As String = "delete from documents where id_doc=" & TextBox1.Text & ""
            cmd = New SqlCommand(cq)
            cmd.Connection = con
            MsgBox("sava")
            RowsAffected = cmd.ExecuteNonQuery()
            If RowsAffected > 0 Then
                MessageBox.Show("تم حذف طرف من الجدول", "السجل", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
                VoirAffaires1.DataGridView2.Refresh()
            Else
                MessageBox.Show("المعني غير موجود", "حاول", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
            End If
            If con.State = ConnectionState.Open Then
                con.Close()

            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub
********************************************
تظهر رسالة الخطا التالي
********************************************
convertion failed when converting the nvarchar value '20/0001' to data type int 
علما اني ان الجدول به ترقيم خاص على شكل سنة/ترقيم تسلسلي  20/0001 وهو من النوع NVARCHAR
السطر المراد حذفه ماخوذ من داتا قريد في فورم اخر


الرجاء المساعدة

حاول بالكود ة

كود :
Try

           con.Open()
           cmd.Connection = con
           cmd.CommandText = "delete from documents where id_doc= @id_doc"
           cmd.Parameters.Add(New SqlParameter("@id_doc", TextBox1.Text))
           cmd.ExecuteNonQuery()
           con.Close()
           MsgBox("تم حذف البيانات")
       Catch ex As Exception
           MessageBox.Show("يوجد خطا اثناء الحذف..." & ex.Message, "رسالة خطا")
       Finally
           con.Close()
           Exit Sub
       End Try
الرد
تم الشكر بواسطة: ابراهيم ايبو , tahaayyoub
#3
(01-02-20, 03:37 PM)tahaayyoub كتب : مشكلة في حذف سطر من جدول
الجدول اسمه documents
المفتاح id_doc
النوع Nvarchar
*************************
 Private Sub DeleteRecord()
        Try
            Dim RowsAffected As Integer = 0
            Connect()
            con.Open()
            Dim cq As String = "delete from documents where id_doc=" & TextBox1.Text & ""
            cmd = New SqlCommand(cq)
            cmd.Connection = con
            MsgBox("sava")
            RowsAffected = cmd.ExecuteNonQuery()
            If RowsAffected > 0 Then
                MessageBox.Show("تم حذف طرف من الجدول", "السجل", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
                VoirAffaires1.DataGridView2.Refresh()
            Else
                MessageBox.Show("المعني غير موجود", "حاول", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
            End If
            If con.State = ConnectionState.Open Then
                con.Close()

            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub
********************************************
تظهر رسالة الخطا التالي
********************************************
convertion failed when converting the nvarchar value '20/0001' to data type int 
علما اني ان الجدول به ترقيم خاص على شكل سنة/ترقيم تسلسلي  20/0001 وهو من النوع NVARCHAR
السطر المراد حذفه ماخوذ من داتا قريد في فورم اخر


الرجاء المساعدة

اذا كان نص فيجب وضع علامه '   '  قبل النص مثل
كود :
Dim cq As String = "delete from documents where id_doc='" & TextBox1.Text & "' "
الرد
تم الشكر بواسطة: ابراهيم ايبو , egypt 2020 , tahaayyoub
#4
(01-02-20, 04:46 PM)alsalamoni كتب :
(01-02-20, 03:37 PM)tahaayyoub كتب : مشكلة في حذف سطر من جدول
الجدول اسمه documents
المفتاح id_doc
النوع Nvarchar
*************************
 Private Sub DeleteRecord()
        Try
            Dim RowsAffected As Integer = 0
            Connect()
            con.Open()
            Dim cq As String = "delete from documents where id_doc=" & TextBox1.Text & ""
            cmd = New SqlCommand(cq)
            cmd.Connection = con
            MsgBox("sava")
            RowsAffected = cmd.ExecuteNonQuery()
            If RowsAffected > 0 Then
                MessageBox.Show("تم حذف طرف من الجدول", "السجل", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
                VoirAffaires1.DataGridView2.Refresh()
            Else
                MessageBox.Show("المعني غير موجود", "حاول", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
            End If
            If con.State = ConnectionState.Open Then
                con.Close()

            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub
********************************************
تظهر رسالة الخطا التالي
********************************************
convertion failed when converting the nvarchar value '20/0001' to data type int 
علما اني ان الجدول به ترقيم خاص على شكل سنة/ترقيم تسلسلي  20/0001 وهو من النوع NVARCHAR
السطر المراد حذفه ماخوذ من داتا قريد في فورم اخر


الرجاء المساعدة

اذا كان نص فيجب وضع علامه '   '  قبل النص مثل
كود :
Dim cq As String = "delete from documents where id_doc='" & TextBox1.Text & "' "

ماعتقدش هينفع لو نص محتاج تحذف الزائد عن المقطع

يعني لو الخلية CV
واخري CV1


كود :
Dim cq As String = "delete from documents where id_doc '" & TextBox1.Text.Trim & "' "
الرد
تم الشكر بواسطة: tahaayyoub , tahaayyoub
#5
(01-02-20, 04:51 PM)egypt 2020 كتب :
(01-02-20, 04:46 PM)alsalamoni كتب :
(01-02-20, 03:37 PM)tahaayyoub كتب : مشكلة في حذف سطر من جدول
الجدول اسمه documents
المفتاح id_doc
النوع Nvarchar
*************************
 Private Sub DeleteRecord()
        Try
            Dim RowsAffected As Integer = 0
            Connect()
            con.Open()
            Dim cq As String = "delete from documents where id_doc=" & TextBox1.Text & ""
            cmd = New SqlCommand(cq)
            cmd.Connection = con
            MsgBox("sava")
            RowsAffected = cmd.ExecuteNonQuery()
            If RowsAffected > 0 Then
                MessageBox.Show("تم حذف طرف من الجدول", "السجل", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
                VoirAffaires1.DataGridView2.Refresh()
            Else
                MessageBox.Show("المعني غير موجود", "حاول", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
            End If
            If con.State = ConnectionState.Open Then
                con.Close()

            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub
********************************************
تظهر رسالة الخطا التالي
********************************************
convertion failed when converting the nvarchar value '20/0001' to data type int 
علما اني ان الجدول به ترقيم خاص على شكل سنة/ترقيم تسلسلي  20/0001 وهو من النوع NVARCHAR
السطر المراد حذفه ماخوذ من داتا قريد في فورم اخر


الرجاء المساعدة

اذا كان نص فيجب وضع علامه '   '  قبل النص مثل
كود :
Dim cq As String = "delete from documents where id_doc='" & TextBox1.Text & "' "

ماعتقدش هينفع لو نص محتاج تحذف الزائد عن المقطع

يعني لو الخلية CV
واخري CV1


كود :
Dim cq As String = "delete from documents where id_doc '" & TextBox1.Text.Trim & "' "

هو قال ان النوع varchar ومعروف ان اي نص يتم وضعه بين '      '

لكن وضع شرط جميل وهو
اذا تاكد الحذف (واستخدم >0 ) يظهر رسالة التاكيد

لانه احيانا لا يتم الحذف لاسباب مختلفه



(01-02-20, 04:36 PM)egypt 2020 كتب :
(01-02-20, 03:37 PM)tahaayyoub كتب : مشكلة في حذف سطر من جدول
الجدول اسمه documents
المفتاح id_doc
النوع Nvarchar
*************************
 Private Sub DeleteRecord()
        Try
            Dim RowsAffected As Integer = 0
            Connect()
            con.Open()
            Dim cq As String = "delete from documents where id_doc=" & TextBox1.Text & ""
            cmd = New SqlCommand(cq)
            cmd.Connection = con
            MsgBox("sava")
            RowsAffected = cmd.ExecuteNonQuery()
            If RowsAffected > 0 Then
                MessageBox.Show("تم حذف طرف من الجدول", "السجل", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
                VoirAffaires1.DataGridView2.Refresh()
            Else
                MessageBox.Show("المعني غير موجود", "حاول", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
            End If
            If con.State = ConnectionState.Open Then
                con.Close()

            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub
********************************************
تظهر رسالة الخطا التالي
********************************************
convertion failed when converting the nvarchar value '20/0001' to data type int 
علما اني ان الجدول به ترقيم خاص على شكل سنة/ترقيم تسلسلي  20/0001 وهو من النوع NVARCHAR
السطر المراد حذفه ماخوذ من داتا قريد في فورم اخر


الرجاء المساعدة

حاول بالكود ة

كود :
Try

           con.Open()
           cmd.Connection = con
           cmd.CommandText = "delete from documents where id_doc= @id_doc"
           cmd.Parameters.Add(New SqlParameter("@id_doc", TextBox1.Text))
           cmd.ExecuteNonQuery()
           con.Close()
           MsgBox("تم حذف البيانات")
       Catch ex As Exception
           MessageBox.Show("يوجد خطا اثناء الحذف..." & ex.Message, "رسالة خطا")
       Finally
           con.Close()
           Exit Sub
       End Try

انت اختصرت الكود بشكل جيد ولكن جعلت رسالة تاكيد الحذف تظهر سواء تم الحذف او لم يتم

وانت استخدمت الباراميتر وهذا هو الاستخدام الصحيح، احسنت Heart
الرد
تم الشكر بواسطة: egypt 2020 , tahaayyoub , tahaayyoub
#6
(01-02-20, 05:12 PM)alsalamoni كتب :
(01-02-20, 04:51 PM)egypt 2020 كتب :
(01-02-20, 04:46 PM)alsalamoni كتب :
(01-02-20, 03:37 PM)tahaayyoub كتب : مشكلة في حذف سطر من جدول
الجدول اسمه documents
المفتاح id_doc
النوع Nvarchar
*************************
 Private Sub DeleteRecord()
        Try
            Dim RowsAffected As Integer = 0
            Connect()
            con.Open()
            Dim cq As String = "delete from documents where id_doc=" & TextBox1.Text & ""
            cmd = New SqlCommand(cq)
            cmd.Connection = con
            MsgBox("sava")
            RowsAffected = cmd.ExecuteNonQuery()
            If RowsAffected > 0 Then
                MessageBox.Show("تم حذف طرف من الجدول", "السجل", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
                VoirAffaires1.DataGridView2.Refresh()
            Else
                MessageBox.Show("المعني غير موجود", "حاول", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
            End If
            If con.State = ConnectionState.Open Then
                con.Close()

            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub
********************************************
تظهر رسالة الخطا التالي
********************************************
convertion failed when converting the nvarchar value '20/0001' to data type int 
علما اني ان الجدول به ترقيم خاص على شكل سنة/ترقيم تسلسلي  20/0001 وهو من النوع NVARCHAR
السطر المراد حذفه ماخوذ من داتا قريد في فورم اخر


الرجاء المساعدة

اذا كان نص فيجب وضع علامه '   '  قبل النص مثل
كود :
Dim cq As String = "delete from documents where id_doc='" & TextBox1.Text & "' "

ماعتقدش هينفع لو نص محتاج تحذف الزائد عن المقطع

يعني لو الخلية CV
واخري CV1


كود :
Dim cq As String = "delete from documents where id_doc '" & TextBox1.Text.Trim & "' "

هو قال ان النوع varchar ومعروف ان اي نص يتم وضعه بين '      '

لكن وضع شرط جميل وهو
اذا تاكد الحذف (واستخدم >0 ) يظهر رسالة التاكيد

لانه احيانا لا يتم الحذف لاسباب مختلفه



(01-02-20, 04:36 PM)egypt 2020 كتب :
(01-02-20, 03:37 PM)tahaayyoub كتب : مشكلة في حذف سطر من جدول
الجدول اسمه documents
المفتاح id_doc
النوع Nvarchar
*************************
 Private Sub DeleteRecord()
        Try
            Dim RowsAffected As Integer = 0
            Connect()
            con.Open()
            Dim cq As String = "delete from documents where id_doc=" & TextBox1.Text & ""
            cmd = New SqlCommand(cq)
            cmd.Connection = con
            MsgBox("sava")
            RowsAffected = cmd.ExecuteNonQuery()
            If RowsAffected > 0 Then
                MessageBox.Show("تم حذف طرف من الجدول", "السجل", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
                VoirAffaires1.DataGridView2.Refresh()
            Else
                MessageBox.Show("المعني غير موجود", "حاول", MessageBoxButtons.OK, MessageBoxIcon.Information)
                Reset1()
            End If
            If con.State = ConnectionState.Open Then
                con.Close()

            End If
        Catch ex As Exception
            MessageBox.Show(ex.Message, "Error", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub
********************************************
تظهر رسالة الخطا التالي
********************************************
convertion failed when converting the nvarchar value '20/0001' to data type int 
علما اني ان الجدول به ترقيم خاص على شكل سنة/ترقيم تسلسلي  20/0001 وهو من النوع NVARCHAR
السطر المراد حذفه ماخوذ من داتا قريد في فورم اخر


الرجاء المساعدة

حاول بالكود ة

كود :
Try

           con.Open()
           cmd.Connection = con
           cmd.CommandText = "delete from documents where id_doc= @id_doc"
           cmd.Parameters.Add(New SqlParameter("@id_doc", TextBox1.Text))
           cmd.ExecuteNonQuery()
           con.Close()
           MsgBox("تم حذف البيانات")
       Catch ex As Exception
           MessageBox.Show("يوجد خطا اثناء الحذف..." & ex.Message, "رسالة خطا")
       Finally
           con.Close()
           Exit Sub
       End Try

انت اختصرت الكود بشكل جيد ولكن جعلت رسالة تاكيد الحذف تظهر سواء تم الحذف او لم يتم

وانت استخدمت الباراميتر وهذا هو الاستخدام الصحيح، احسنت Heart

اشكرك علي ردك كلنا هنا للتعاون معا .

انا وضحتة الفكرة فقت ويقدر يزود البراميتر بالشكل الي حابب يضيفة .
الرد
تم الشكر بواسطة: tahaayyoub
#7
جرب الكود دة ردا علي رسالتك

إختصارا لطلبك افضل طريقة للحذف ابعد عن موضوع التيكست خالص .


خلي المستخدم يحدد الصف قبل الحذف .


وعند الحذف استخدم الكود التالي :-






كود :
Try
Dim i As Integer
       i = DataGridView1.CurrentRow.Index
       'DataGridView1.Item(0, i).Value تاكد من انة المفتاح الخاص بالخلية المراد الحذف منها حيث 0 اول خلية بالصف حتي لو غير مرئية  
          con.Open()
          cmd.Connection = con
          cmd.CommandText = "delete from documents where id_doc= @id_doc"
          cmd.Parameters.Add(New SqlParameter("@id_doc", DataGridView1.Item(0, i).Value))
          cmd.ExecuteNonQuery()
          con.Close()
          MsgBox("تم حذف البيانات")
      Catch ex As Exception
          MessageBox.Show("يوجد خطا اثناء الحذف..." & ex.Message, "رسالة خطا")
      Finally
          con.Close()
          Exit Sub
      End Try
الرد
تم الشكر بواسطة:


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  قمت بعمل مثال لإستخراج النصوص من الصورة واجهتني مشكلة اللغة العربية ماهو الحل mohamedgadain61 1 60 , 07:54 AM
آخر رد: ابراهيم ايبو
  السلام عليك مشكل في رقم التسجيل برنامج المكتبة ساعدوني ارجوكم crazykinko 0 66 15-01-21, 04:55 PM
آخر رد: crazykinko
  مشكلة تغير لون صف في داتاجريدفيو ahmed.fms 2 117 13-01-21, 02:31 PM
آخر رد: ahmed.fms
  [VB.NET] مشكلة عند عرض البيانات من الداتاجريد فيو ارهقتني محمد اسماعيل 12 352 08-01-21, 01:35 AM
آخر رد: محمد اسماعيل
  لدي مشكلة في كود تحديد مسار البرنامج أبو عبدالله الحلواني 4 273 01-01-21, 09:28 PM
آخر رد: سعود
  مشكلة استعلام textbox1 عن رقم مثل 10/20/1000/0 moodyfy 1 163 31-12-20, 09:37 PM
آخر رد: أبو عبدالله الحلواني
  مشكلة معرفة الخلية الفارغة في DataGridView mustafa mohamed 3 132 31-12-20, 04:23 AM
آخر رد: ابراهيم ايبو
Exclamation [سؤال] مشكلة في تشغيل برنامجي عند العميل بسبب الكريستال ريبورت solyH 4 2,223 21-12-20, 04:06 PM
آخر رد: Lathe1
  [VB.NET] مساعدة في حل مشكلة imam_boune 1 222 08-12-20, 02:27 AM
آخر رد: Anas Mahmoud
  مشكلة فى التعامل مع ال panel محمد ابوخليل 1 185 05-12-20, 08:20 PM
آخر رد: Anas Mahmoud

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


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