منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب

نسخة كاملة : حذف اكثر من سطر محدد في جرد فيو
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
السلام عليكم 
لو سمحتو مساعده بكود
تحديد اكثر من سطر في الجرد فيو 
وحذفها من قاعد البيانات بناء علي رقم الفاتورة
VB.net
sql server
PHP كود :
في اللود
DataGridView1
.SelectionMode DataGridViewSelectionMode.FullRowSelect

في زر الحذف
For Each selectedRow As DataGridViewRow In DataGridView1.SelectedRows
    Dim invoiceNumber 
As String selectedRow.Cells("InvoiceNumberColumn").Value.ToString()

    ' استخدام رقم الفاتورة لحذف البيانات من قاعدة البيانات
    DeleteRecordFromDatabase(invoiceNumber)

    ' 
حذف الصف من جريد فيو
    DataGridView1
.Rows.Remove(selectedRow)
Next
----------------------
Sub DeleteRecordFromDatabase(invoiceNumber As String)
 
   ' قم بتنفيذ استعلام SQL أو الإجراء المخزن لحذف السجل

End Sub 
بصراحة ضاع من عمري الكثير و انا لم اعرف الاكواد اللتي توفر المزيد من الوقت او حتى عدد الاسطر بالكود.
تصور اني قبل كنت اكتب كود يمر على صفوف الداتاقريدفيو و كل صف محدد احذف بالكود بعدد الصفوف المحددة يعني تصور  الخوارزمية التالية:
command for delete  selrow1
command for delete  selrow2
command for delete  selrow3
و هكذا تكرار الاتصال بملف القاعدة مع  ان الامر لا يتطلب الا سطر واحد فقط بعد تجهيز نص يشمل كافة الارقام اللتي نستعلم بواسطتها و تكون بالصيغة التالية:
3,5,9

و حسب طلب الاخ نستخلصها من الصفوف المحددة ونبني النص اللذي يحمل ارقام الايدي كالتالي:
PHP كود :
Dim rowsint As Integer dgv1.SelectedRows.Count
 Dim arr
(rowsint 1) As String
 
For As Integer 0 To dgv1.SelectedRows.Count 1
     arr
(i) = dgv1.SelectedRows(i).Cells(0).Value
 Next
 Dim ids 
As String String.Join(","arr
و اجراء الحذف كالتالي:
PHP كود :
Private Sub del(ids As String)
 
   Using con As New OleDb.OleDbConnection(str)
 
       Using cm As New OleDb.OleDbCommand(""con)
 
           cm.CommandText "delete from tb where tid in (" ids ")"
 
           If con.State ConnectionState.Closed Then con.Open()
 
           Try
                cm
.ExecuteNonQuery()
 
           Catch ex As Exception
                MsgBox
("from del" vbNewLine Err.DescriptionMsgBoxStyle.Critical"error")
 
           Finally
                If con
.State ConnectionState.Open Then con.Close()
 
           End Try
 
       End Using
    End Using
    
End Sub 
دقق في سطر الاستعلام التالي:
PHP كود :
cm.CommandText "delete from tb where tid in (" ids ")" 
بصراحة مرة اخرى انا منذهل و متحسر على مافات من وقت (لكن ايضا بصراحة لا ادري هل هذه جديدة ام انها قديمة)

من لديه كود اختصار ياليت يدلنا عليه و شكر الله له
الملف المرفق 
Access Database
أقصد ان قاعدة البيانات من نوع أكسس
مشكورين جميعا
هذا الكود لمن يحتاج

كود :
Private Sub Button5_Click111(sender As Object, e As EventArgs) Handles Button5.Click
If MessageBox.Show("هل أنت متأكد من مواصلة حذف جميع الفواتير المحددة؟", "تنبيه", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) = Windows.Forms.DialogResult.No Then
Exit Sub
Else
con = New SqlConnection(cs)
If con.State = 1 Then con.Close()
con.Open()
cmd = New SqlCommand
For i As Integer = 0 To DgvQuick.SelectedRows.Count - 1

With cmd
.CommandType = CommandType.Text
Dim comd As New SqlCommand("Delete from QuickSale_Tbl Where Sale_ID=@Sale_ID", con)
comd.Parameters.Add("@Sale_ID", SqlDbType.Decimal).Value = DgvQuick.SelectedRows(i).Cells(0).Value
' comd.Parameters.Add("@Product_ID", SqlDbType.Int).Value = DgvPrd.Rows(i).Cells(0).Value
comd.ExecuteNonQuery()
End With

Next
con.Close()
LoadAllQuick_Sale()
End If
''

''
End Sub