2016-05-02 9 views
-1
private void deleteToolStripMenuItem_Click(object sender, EventArgs e) 
{ 
    int Index = 0; 
    if (MessageBox.Show("Are you sure?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) 
    { 
     string delete = dataGridView1.Rows[Index].Cells[1].Value.ToString(); 
     SqlCeCommand cmd = new SqlCeCommand("delete from Contact_List where Name='" + delete + "'", con); 
     con.Open(); 
     int result = cmd.ExecuteNonQuery(); 
     if (result == 1) 
     { 
      MessageBox.Show("Record Deleted Successfully"); 
      filldata(); 
     } 
     else 
     { 
      MessageBox.Show("Record not Deleted....Please try again."); 
     } 
    } 
} 
    con.Close(); 

Warum löscht dieser Code nur die ersten Zeilen, wenn ich die zweiten Zeilen ausgewählt habe?Warum löscht dieser Code nur die ersten Zeilen der Datagridview?

Bitte helfen Sie !!

+0

Da _index = 0_? – Steve

+1

Sie haben vor dem Ausführen des Codes Index = 0 zugewiesen; was sonst würden Sie erwarten? – techspider

+0

Aber in dem anderen Artikel zeigt es, dass es die ausgewählte Zeile löscht. Wie ändere ich es? Wie mache ich es so, dass es die ausgewählte Zeile löscht? – WordSide

Antwort

0

Sie haben in der ersten Zeile Index = 0 zugewiesen. Jedes Mal, wenn Sie diese Methode aufrufen, löscht sie immer die erste Zeile mit dem Index 0.

Wenn Sie die ausgewählte Zeile entfernen möchten, müssen Sie SelectedIndex verwenden. Betrachten Sie unter Beispielcode:

string delete = dataGridView1.Rows[dataGridView1.SelectedIndex].Cells[1].Value.ToString(); 
0

Die Variable Index wurde initialisiert mit 0 und der Wert wird nicht während der Ausführung aktualisiert werden, so dass jedes Mal, wenn die erste Zeile gelöscht. so, was Sie tun möchten, ist, aktualisieren Sie die Variable Index mit aktuellen Zeilenindex wie folgt aus:

Index= datagridview.CurrentCell.RowIndex; 
string itemToDelete = dataGridView1.Rows[Index].Cells[1].Value.ToString(); 
// this will be the `Cells[1]` value at the selected index 
+0

Gibt es trotzdem die 2 Informationen, die denselben Namen haben, nicht mit dem obigen Code zu löschen? – WordSide

Verwandte Themen