(LocalVariable) ABC.string (Name) = (Idatareader) datareader.GetString (0);Null bezpieczny sposób na uzyskanie wartości z IDataReader
ta wartość nazwy pochodzi z bazy danych .. co się tutaj dzieje, jeśli ta wartość nazwy jest pusta podczas odczytu jest rzucanie wyjątku?
Ręcznie robię niektóre warunek tutaj. Nie chcę napisać instrukcję, aby sprawdzić stan wszystkich moich zmiennych ..
robie coś takiego teraz ..
string abc = (Idatareader)datareader.GetValue(0);
if(abc = null)
//assiging null
else
assiging abc value
czy istnieje coś takiego jak możemy napisać metodę rozszerzenia dla tego? dzięki
W przypadku, gdy wartość jest DBNull i spodziewamy się int, czy nie jest tak źle, aby po prostu zwrócić 0? Czy nie powinniśmy w tym przypadku wyrzucić wyjątku, ponieważ coś jest oczywiście nie tak - albo powinniśmy się spodziewać int? lub zapytanie powoduje błędny typ wartości? Umieszczenie 0 w miejscu, w którym nie ma rzeczywistej wartości, może być w niektórych przypadkach w porządku, ale myślę, że posiadanie tego w powszechnie używanej bibliotece może prowadzić do bardzo subtelnych błędów. – poke
To wygodne, aby móc przekazać wartość domyślną jako parametr: 'public static T GetValueOrDefault (ten wiersz IDataRecord, int ordinal, T defaultValue = default (T))' –
mistika
@Poke dla przypadku int, który chcesz mieć T 'int?', więc zwracana wartość może być pusta. –