Ich versuche, einen Eintrag aus dem Datagridview und der Datenbank zu entfernen. Ich habe es so, dass es die Zeile aus der Datenrasteransicht entfernt, aber es auch nicht aus der Datenbank löschen kann. Hier ist mein Code, den ich an Ort und Stelle habe:Löschen einer Zeile in einer Datenbank aus datagridview C#
private void listBtn_Click(object sender, EventArgs e)
{
MySqlDataAdapter mysqldatadapter = new MySqlDataAdapter("select id, username from members ORDER BY id", new MySqlConnection(conn.connectionString));
mysqldatadapter.Fill(ds);
dataGridView.DataSource = ds.Tables[0];
listBtn.Enabled = false;
}
private void btnDelete_Click(object sender, EventArgs e)
{
using (MySqlConnection dbConn = new MySqlConnection(conn.connectionString))
{
dbConn.Open();
for (int i = 0; i < dataGridView.Rows.Count; i++)
{
DataGridViewRow row = dataGridView.Rows[i];
if (row.Selected == true)
{
dataGridView.Rows.RemoveAt(i);
MySqlCommand cmd = dbConn.CreateCommand();
cmd.CommandText = "DELETE FROM members WHERE id = " + i;
try
{
cmd.ExecuteNonQuery();
}
catch (MySqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
dbConn.Close();
}
}
Ich bin ratlos, jede Hilfe würde geschätzt werden.
Danke!
Update - Gibt es eine Möglichkeit, den Wert einzelner Zellen zu nehmen, die an den mysql-Befehl übergeben werden? Zum Beispiel, greifen die ID?
Schwer zu sagen, aber wahrscheinlich Ihre Werte für 'I' nicht die ID-Spalte in der' members' übereinstimmen Tabelle. – dave
das habe ich mir gedacht. Gibt es eine Möglichkeit, den Wert der Zelle zu erhalten? – user2101411