mam problem - wywala mi błąd “The source contains no DataRows.” :
public IListSource znajdz_nazwisko2(string nazwisko){
var nazwiska = from osoba in baza.Pracownicy where osoba.nazwisko.StartsWith(nazwisko) select osoba;
IListSource lista;
[b] lista = nazwiska.CopyToDataTable();[/b]
return lista;
}
Chodzi dokładnie o tę linijkę podkreśloną - nie wiem jak sprawdzić wcześniej czy moja zmienna " var nazwisko" zawiera jakieś dane ? Próbowałem to robić na różne sposoby np.
if(nazwiska.CopyToDataTable().Rows != null)
Ale tutaj także się sypało - zapewne dlatego, że najpierw wykonywana jest funkcja CopyToDataTable() - bez sprawdzenia datarows. Jednak próbowałem szukać dostępnych metod dla samej zmiennej “var nazwiska” - jednak niczego specjalnego nie znalazłem…
Wszystko działa dobrze w momencie gdy zapytanie ( from osoba in baza.Pracownicy where osoba.nazwisko.StartsWith(nazwisko) select osoba;) zwróci jakieś wiersze, jeżeli niczego nie zwróci to wtedy pojawia się błąd - jak go wyeliminować ?
public IListSource znajdz_nazwisko2(string nazwisko)
{
var nazwiska = from osoba in baza.Pracownicy where osoba.nazwisko.StartsWith(nazwisko) select osoba;
if (nazwiska != null)
{
IListSource lista;
lista = nazwiska.CopyToDataTable();
return lista;
}
else
{
return null;
}
}
Nie działa ten sposób : w przypadku gdy zapytanie nie zwróci żadnych danych to i tak wchodzi do tego if’a -> nazwiska != null… i wyświetla błąd The source contains no DataRows.
. Musi być zatem jakiś inny sposób, który sprawdzi czy jest to element zawierający datarows.