Ich habe eine Zeichenfolge, die 9 Zeichen enthält, zum Beispiel LON052012 (von London 23.05.2012. - Tag.Monat.Jahr.). Ich möchte alle Datensätze aus der Tabelle in Access löschen, wo alle Städte mit den ersten drei Buchstaben aus dieser Zeichenfolge beginnen und diese Monate und das Jahr haben (05.2007.).Löschen bestimmter Datensatz aus der Access-Datenbank auf Knopfdruck
Dies ist die Funktion:
private void button2_Click(object sender, EventArgs e)
{
if (textBox1.Text != "")
{
try
{
string sTown, s1, s2;
sTown = textBox1.Text.Substring(0, 3);
s1 = textBox1.Text.Substring(3, 2);
s2 = textBox1.Text.Substring(5);
string sDelete = "DELETE * FROM Country WHERE Town LIKE @p1 and month(TownDate) = @p2 and year(TownDate) = @p3";
OleDbCommand komDelete = new OleDbCommand(sDelete, connection);
komDelete.Parameters.AddWithValue("@p1", sTown + "*");
komDelete.Parameters.AddWithValue("@p2", s1);
komDelete.Parameters.AddWithValue("@p3", s2);
connection.Open();
komDelete.ExecuteNonQuery();
MessageBox.Show("Deleted");
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
connection.Close();
}
}
else
{
MessageBox.Show("TextBox is empty!");
}
}
Dies ist, wie Tabelle Land sieht aus wie (CountryID, Stadt, TownDate):
Er sagt immer, dass der Datensatz selbst gelöscht wird, wenn es ist nicht.
Ich habe es getan, aber es wird immer noch keine Datensätze aus der Tabelle löschen ... – Nikola
Können Sie überprüfen Sie Ihre SQL-Anweisung nach der Übergabe der Parameter, zB komDelete.CommandText. –
Für OLE-Verbindung mit Zugriff verwenden Sie% anstelle von *, überprüfen https://Stackoverflow.com/a/17000335/3142139 –