Witam
Chciałbym usunąć pole z tabeli, które ma jakaś wpisane ID do editboxa.
Chciałbym to zrobić LINQ'iem, jednak napisałem parę wersji tych zapytań linqiem i nie chce mi to działać.
Ktoś orientuje się jak powinno się wykonywać usuwanie ?
Ja wymyśliłem coś takiego:
DataClassesDziennikDataContext db = new DataClassesDziennikDataContext();
db.Uczens.DeleteAllOnSubmit(db.Uczens.Single(p=> p.IdKlasy == (Int16.Parse(txtIdUcznia.Text))));
db.SubmitChanges();
Jednak dostaję błąd:
The type arguments for method 'System.Data.Linq.Table<Dziennik.Uczen>.DeleteAllOnSubmit<TSubEntity>(System.Collections.Generic.IEnumerable<TSubEntity>)' cannot be inferred from the usage. Try specifying the type arguments explicitly.
Teraz próbowałem też tak:
int x = Int16.Parse(txtIdUcznia.Text);
Uczen student = db.Uczens.Where(c => c.IdKlasy == x).Single();
db.Uczens.DeleteAllOnSubmit(student);
db.SubmitChanges();
Ale ten sam błąd co wyżej :-) Plz help !
Heh. w zapytaniu Linqa podawałem Id_klasy a nie ID_ucznia = chyba z przemęczenia :-). W każdym razie tak wygląda działające zapytanie:
<code> DataClassesDziennikDataContext db = new DataClassesDziennikDataContext();
int x = Int16.Parse(txtIdUcznia.Text);
Uczen student = db.Uczens.Where(c => c.IdUcznia == x).Single();
db.Uczens.DeleteOnSubmit(student);
db.SubmitChanges();
MessageBox.Show("Uczen zostal usunięty");
Teraz chciałem się spytać czy macie może jakiś ciekawy pomysł, żeby program się nie wysypywał, gdy ktoś wpisze ID, którego nie ma w bazie ? Normalnie teraz się wykrzacza i pokazuje na Uczen student = db.Uczens.Where(c => c.IdUcznia == x).Single(); z błędem sequence has no elements.