ВСТАВИТЬ / ОБНОВИТЬ данные, используя DBNull или ноль? - PullRequest
3 голосов
/ 27 октября 2011

При изменении данных в базе данных SQL Server вы можете использовать System.DBNull.Value или null для представления значения NULL. Оба из них будут работать и установят правильное значение NULL.

Мой вопрос - , какой из них предпочтителен и почему? Существуют ли определенные случаи, когда один должен использоваться вместо другого?

Ответы [ 2 ]

2 голосов
/ 27 октября 2011

С System.DBNull.Value! = Null , и путем тестирования этого кода:

var result = (System.DBNull.Value == null); // this is always false

Мы можем видеть, что CLR не обрабатывает их одинаково.При извлечении данных из базы данных нам нужно проверять DBNull.Value, а не ссылку null.

Хотя не имеет значения, какой тип данных мы используем для INSERT или UPDATE, я бы предпочелпридерживаться DBNull.Value для согласованности через код доступа к данным.

В вопросе есть множество других мнений C # Доступ к базе данных: DBNull vs null

0 голосов
/ 27 октября 2011

DBNull представляет вариант и не зависит от типа. В общем контексте я бы ожидал снижения производительности везде, где у вас есть конструкция, которая ожидает строго типизированный набор данных и должна конвертировать DBNull в типизированный NULL.

...