01-02-20, 09:25 PM
(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
انت اختصرت الكود بشكل جيد ولكن جعلت رسالة تاكيد الحذف تظهر سواء تم الحذف او لم يتم
وانت استخدمت الباراميتر وهذا هو الاستخدام الصحيح، احسنت
اشكرك علي ردك كلنا هنا للتعاون معا .
انا وضحتة الفكرة فقت ويقدر يزود البراميتر بالشكل الي حابب يضيفة .