Witam,
mam problem - posiadam taki oto kod :
public IList znajdz_nazwisko(string nazwisko)
{
var nazwiska = from osoba in baza.Pracownicy where osoba.IsnazwiskoNull() != true where osoba.nazwisko.StartsWith(nazwisko) select osoba;
if (nazwiska.Any())
{
IListSource lista;
lista = nazwiska.CopyToDataTable();
return lista.GetList();
}
else return null;
}
Inaczej mówiąc pobieram sobie z bazy danych imiona i nazwiska pracowników - wszystkie dane (baza.Pracownicy to mój Dataset) i zapisuje to wszystko w liście IList. W jaki sposób teraz odwołać się do konkretnego pola np. imię pracownika tzn. IList lista = znajdz_nazwisko(“Kowalski”); i teraz mogę podać index tzn. lista[2], ale czy można zrobić coś abym uzyskał konkretne pole tzn. lista[“imie”] ? Jeżeli na powyższe pytanie będą problemy z odpowiedzią to mam jeszcze inne Czy mogę od razu otrzymać listę typu Baza_z_relacjamiDataSet.PracownicyRow ?? Jeżeli tak to jak ją uzyskać w ten sposób, aby pozbyć się wartości DBNull. Mogę taką listę zrobić w ten sposób :
public IList znajdz_nazwisko(string nazwisko)
{
var nazwiska = from osoba in baza.Pracownicy where osoba.IsnazwiskoNull() != true where osoba.nazwisko.StartsWith(nazwisko) select osoba;
if (nazwiska.Any())
{
List lista;
lista = nazwiska.ToList();
return lista;
}
else return null;
}
Ale w ten sposób wywali mi błędy, jeżeli jakieś pole w bazie danych nie będzie określone tzn. będzie miało wartość DBNull. Może jakoś zapytanie do bazy można skonstruować inaczej, aby wartości DBNull były zastępowane domyślnymi wartościami, albo nie brane pod uwagę … ? W przypadku korzystania z IListSource (ten przykład u góry) dzieje się to automagicznie tzn. tam pomimo tego, że nie mam określonej jakieś wartości to błędu DBNull nie mam …
Proszę o pomoc - z góry dziękuję