2017-07-23 3 views
0

Ich habe versucht, viele Lösungen, dass nur eine Zeile gelöscht wird aber in meinem VS2017 C# von der ausgewählten Zeile bis zum Ende der DataGridView alle Zeilen gelöscht werden. Wenn ich 5 Zeilen habe und die vierte Zeile lösche, werden sowohl die vierte als auch die fünfte Zeile gelöscht. Ich kann Zeilen ohne Probleme hinzufügen, und ich kann die Tabelle löschen und die Tabelle erstellen, aber das Löschen einer einzelnen Datenzeile scheint nicht möglich.C# lösche eine einzelne Zeile in einer SQL-gebundenen datagridview

Bitte helfen Sie, ich habe für ein paar Tage in diesem gewesen ...

private void DDataTable_UserDeletedRow(object sender, DataGridViewRowEventArgs e) 
{ 
    try 
    { 
    // Want the last operation to be completed 
    dbDataSetBindingSource.EndEdit(); 
    //dbTableAdapter.Update(dbDataSet); 

    if (selectedCellRow > 0) 
    { 
     DataRowView drv = (DataRowView)dbDataSetBindingSource.Current; 
     DataRow drToDelete = drv.Row; 
     dbDataSet.MyTable.Rows.Remove(drToDelete); 
    // This removed all remaining rows 
    // DDataTable.Rows.Remove(this.DDataTable.SelectedRows[ 0 ]); 
    // This removed all remaining rows 
    // dbDataSetBindingSource.RemoveCurrent(); 
    // This gave an error "Can't remove items not in the list? 
    // dbDataSetBindingSource.Remove(selectedRowStr); 

     dbDataSetBindingSource.EndEdit(); 
     dTableAdapter.Update(dbDataSet); 
    } 
    else 
     MessageBox.Show("Error in delete row, bad index."); 
    } 
    catch (Exception ex) 
    { 
    // CancelEventArgs myE = new CancelEventArgs(); 
    // DDataTable_Validating(sender, myE); 
    string myStr = "Error in deleting row\n" + ex.Message; 
    MessageBox.Show(myStr, "User Delete a Row"); 
    } 
} 

Antwort

0

Sie drToDelete.Delete() nennen kann, dann Dataset aktualisieren, indem dbDataSet.MyTable.AcceptChanges();

Aufruf Oder Sie können einfach anrufen:

dbDataSet.MyTable.Rows.RemoveAt(dbDataSetBindingSource.Position); 

Hoffe, das hilft.

+0

Danke, drToDelete.Delete() löschte die einzelne Zeile aus der Datenbank (SQL), entfernte aber mehrere Zeilen in der DataDrigView. – CES

+0

Korrektur: drToDelete.Delete entfernt nur die Daten aus dem DataGridView, nicht SQL-Server. Ich bin also am selben Ort. Eine einzelne Zeile kann nicht gleichzeitig aus der SQL-Datenbank und der DataGridView gelöscht werden. – CES

Verwandte Themen