2017-03-26 5 views
0

Ich hatte ein Problem mit der Aktualisierung nur der überprüften Zeilen in GridView, da ich einen Spaltenzellenwert nur basierend auf dem ID-Wert der geprüften Zeilen aktualisieren muss.Geprüfte Gridview-Zeilen aktualisieren

ich diesen Code versucht, aber es aktualisiert zufällige Zeilen, nicht die geprüft:

 Try 
      Dim I As Integer 
      For I = 0 To GridView1.SelectedRowsCount() - 1 
       If (GridView1.GetSelectedRows()(I) >= 0) Then 
        Dim strID As String = GridView1.GetRowCellValue(I, "ID") 
        Dim strUpdate As String = "UPDATE records SET payment_order= @payment_order where ID = @ID" 
        cmd.CommandType = CommandType.Text 
        cmd.CommandText = strUpdate.ToString() 
        cmd.Parameters.Clear() 

        cmd.Parameters.AddWithValue("@payment_order", rfnd_id_lbl.Text) 
        cmd.Parameters.AddWithValue("@ID", strID) 
        cmd.Connection = con 
        con.Open() 
        cmd.ExecuteNonQuery() 
       End If 
      Next 


     Catch ex As SqlException 
      Dim errorMsg As String = "Error in Update" 
      errorMsg += ex.Message 
      Throw New Exception(errorMsg) 
     Finally 
      con.Close() 
     End Try 

Kann mir jemand helfen, dieses Problem zu lösen, bitte?

Antwort

0

Versuchen Sie, gridView1.GetDataRow(gridView1.GetSelectedRows()[i]) zu verwenden, um den ausgewählten Datensatz zu erhalten, der für die Aktualisierung der Parameter verwendet werden soll.

Ich hoffe es hilft.

DX DOC: https://documentation.devexpress.com/WindowsForms/DevExpress.XtraGrid.Views.Base.ColumnView.GetSelectedRows.method

+0

Können Sie das näher erläutern weiter, warum dieser Ansatz hilft OP ursprüngliches Problem lösen würde? Es ist weniger effektiv, jemanden an die Dokumentation zu verweisen, als den Prozess zu erklären, der hinter der Lösung der Probleme steht. Sie erklären kurz, was zu verwenden ist, aber größere Tiefe ist erforderlich. –

+0

Ich schrieb es ==> Verwenden Sie GridView1.GetDataRow (GridView1.GetSelectedRows() [i]) anstelle von Dim StrID als String = GridView1.GetRowCellValue (I, "ID") –

+0

Dies hilft nicht näher zu erklären, warum Ihr Ansatz ist effektiver oder warum es funktionieren würde. Vielleicht siehst du etwas, das der OP oder ich selbst vermisse, aber ohne eine Erklärung ist deine Antwort nur ein Leckerbissen Code. Ein Teil von SO erklärt das * warum * und nicht nur das * wie *. Da die Frage des OP vom März an gestellt wird, besteht die Gefahr, dass Ihre Antwort aufgrund von Unklarheiten automatisch bereinigt wird. –

Verwandte Themen