Concurrency violation

0

Witam

Mam problem ze stworzeniem UpdateCommand dla mojego adaptera. Próbuję czymś takim:

        adapter.UpdateCommand = new MySqlCommand("UPDATE USERS set NICK = @NICK where UID = @UID", con);
        adapter.UpdateCommand.Parameters.Add("@NICK", MySqlDbType.VarChar, 25, "NICK");
        adapter.UpdateCommand.Parameters.Add("@UID", MySqlDbType.Int16, 11, "UID");

co przy próbie wykonania niestety kończy się błędem:

"Concurrency violation: the UpdateCommand affected 0 of the expected 1 records."

Z bazy nie korzysta nikt poza mną, więc konflikt dostępu nie występuje. Zapytanie skonstruowane jest poprawnie. O co może chodzić?
Gdy wrzuciłem adapter.UpdateCommand.CommandText.ToString() w naprędce stworzony label, okazało się że egzekwowane zapytanie ma dokładnie taką postać, jaką wklepałem przy inicjalizowaniu: "UPDATE USERS set NICK = @nick where UID = @UID". Czy w momencie wykonania, w zapytaniu nie powinny figurować już konkretne wartości parametrów @nick i @UID pobrane z grida? Może w tym tkwi problem?

Po edycji:

Drugi problem, jeszcze ciekawszy - usuwanie wierszy poprzez DeleteCommand również zwraca taki sam błąd, ale USUWA wskazany rekord. Po prostu aplikacja wywala exception, ale po ponownym uruchomieniu wskazanego do usunięcia rzędu już nie ma. Czary?

0

Przejrzałem, ale tam jest podane rozwiązanie zbieżne z moim - a te nie działa. Zresztą to akurat mały pikuś, by metodą prób i błędów doszedłem do tego, że wystarczy zamienić małpki @ na znaki zapytania ? i instrukcja Update śmiga.

Pozostaje problem numer dwa, czyli instrukcja Delete. Dlaczego wyrzuca ona błąd concurrency violation, skoro rekord usuwany jest poprawnie?

0

Witam,
Mam wlasnie ten sam problem, tyle ze uzywam SqlCommandBuildera do wygenerowania update/delete.
Problem nie wystepuje za kazdym razem.

Zauwazylem, ze minelo juz kilka dni od Twojego postu.
Jesli rozwiazales ten problem, napisz troche w jaki sposob.

Pozdraiwam
Mariusz

1 użytkowników online, w tym zalogowanych: 0, gości: 1