C# Sql Server usunięcie rekordu z bazy


(Trance) #1

mam taki oto kod

SqlCommand usun = new SqlCommand("DELETE FROM sciezki WHERE(plik LIKE '" + listBox1.SelectedItem.ToString() + "' )LIMIT 1", polaczenie);

Pytanko: dlaczego próba wykonania zapytania kończy się: wyświetleniem Incorrect syntax near LIMIT :?:


([alex]) #2
"DELETE FROM sciezki WHERE plik LIKE '" + listBox1.SelectedItem.ToString() + "' LIMIT 1"

(Trance) #3

to samo. . . :frowning:


([alex]) #4

aha, przecież to delete, chyba nie liczne SQL serwery obsługują klauzule limit przy delete.


(Trance) #5

:confused: zależy mi tylko na tym aby usunąć tylko jeden rekord spełniający kryterium, jeżeli nie LIMIT to jest może jakiś inny sposób :?: :?


(pebal) #6
SqlCommand usun = new SqlCommand("DELETE TOP(1) FROM sciezki WHERE plik LIKE '" + listBox1.SelectedItem.ToString() + "'", polaczenie);

(Marcin Miga) #7

A jeśli to nie zadziała, to możesz spróbować tak (jest notabene poprawniej):

DELETE FROM sciezki WHERE id IN (SELECT TOP 1 id FROM sciezki WHERE plik LIKE '...')

(Trance) #8

działa ślicznie wielkie dzienx :wink: