我有一個包含9個字符的字符串,例如LON052012(來自倫敦23.05.2012。 - day.month.year。)。我想從Access中的表中刪除所有城市的所有記錄,其中所有城市都以該字符串的前三個字母開始,並具有這些月份和年份(05.2007。)。從Access數據庫刪除按鈕單擊的特定記錄
這是函數:
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!");
}
}
這是表國家的樣子(CountryID,鎮,TownDate):
它總是說,該記錄即使刪除不是。
我做到了,但它仍然不會刪除表中的記錄... – Nikola
您可以在傳遞參數(例如komDelete.CommandText)後檢查(併發布)您的sql語句。 –
對於具有訪問權限的OLE連接,使用%而不是*,查看https://stackoverflow.com/a/17000335/3142139 –