[c#] Baza danych DbNull - problem


(Przemek89k) #1

Cześć,

mam jeszcze jeden problem - chodzi o błąd : "The value for column 'miasto' in table 'Pracownicy' is DBNull."

Mam taki kod :

public IListSource znajdz_miasto(string nazwa)

{

var nazwiska = from osoba in baza.Pracownicy where osoba.miasto.StartsWith(nazwa) select osoba;

if (nazwiska.Any())

{

IListSource lista;

lista = nazwiska.CopyToDataTable();

return lista;

}

else return null;

}

Kod działa poprawnie, jednak wywala błąd w momencie gdy przeszukuje osoby, które nie mają podanego miasta :

from osoba in baza.Pracownicy where osoba.miasto.StartsWith(nazwa) select osoba;

Próbowałem tam dać zapytanie w postaci :

from osoba in baza.Pracownicy where osoba.miasto != null select osoba;

ale także wywala ten sam błąd.

Wszystko działa poprawnie, jeżeli w bazie danycn każdy użytkownik będzie miał wpisane miasto - ale jak zrobić zapytanie, aby nie sprwadzał osób, dla których nie ma wpisanej wartości miasta (DBNull)...?

Dzięki za odpowiedzi ..


(Grzelix) #2

Trzeba by to przetestować ale pomysł jest taki:

Select * from (select * from pracownicy where miasto != null) where miasto starts ...

Inne obejście tego problemu to ustawienie domyślnej wartość na pustego stringa zamiast na null'a i wtedy powinno działać twoje zapytanie.