Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Jaki jest najlepszy sposób radzenia sobie z DBNull?

Typy dopuszczające wartość null są dobre, ale tylko dla typów, które na początku nie mogą być wartościami null.

Aby uczynić typ „nullable”, dodaj znak zapytania do typu, na przykład:

int? value = 5;

Polecam również użycie „as Słowo kluczowe zamiast rzutowania. Słowa kluczowego as można używać tylko w przypadku typów dopuszczających wartość null, więc upewnij się, że rzutujesz elementy, które już dopuszczają wartość null (takie jak łańcuchy) lub używasz typów dopuszczających wartość null, jak wspomniano powyżej. Uzasadnienie tego jest

  1. Jeśli typ dopuszcza wartość null, „as " słowo kluczowe zwraca null jeśli wartość to DBNull .
  2. Jest trochę szybszy niż rzucanie, ale tylko w niektórych przypadkach. To samo w sobie nigdy nie jest wystarczającym powodem, aby używać as , ale w połączeniu z powyższym powodem jest to przydatne.

Polecam zrobienie czegoś takiego

DataRow row = ds.Tables[0].Rows[0];
string value = row as string;

W powyższym przypadku, jeśli row wraca jako DBNull , a następnie value stanie się null zamiast zgłaszać wyjątek. Należy pamiętać, że jeśli zapytanie bazy danych zmienia zwracane kolumny/typy, używając as spowoduje ciche niepowodzenie Twojego kodu i uprość wartości null zamiast zgłaszać odpowiedni wyjątek, gdy zwracane są nieprawidłowe dane, dlatego zaleca się przeprowadzenie testów w celu sprawdzenia poprawności zapytań w inny sposób, aby zapewnić integralność danych w miarę rozwoju bazy kodu.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Unikanie pojedynczego cudzysłowu w SQL Server

  2. Zmień format daty dla bieżącej sesji w SQL Server

  3. Wybór i konfiguracja sprzętu dla SQL Server 2016 Standard Edition

  4. Skopiuj tabelę do innej bazy danych na innym serwerze SQL

  5. Jak poprawnie wstawić znak nowej linii w nvarchar