При доступе к объекту в DataTable, полученном из базы данных, существуют ли какие-либо причины не подвергать объект желаемому типу или есть причины использовать преобразование? Я знаю, что правило применяется, когда мы знаем, с каким типом данных мы работаем, и конвертируем при попытке изменить тип данных на то, что это не так. Предполагая, что мы знаем, какой тип данных хранится в столбце, литье кажется подходящим, но существуют ли какие-либо проблемы с типом БД, что означает, что мы не можем полагаться на это?Кастинг или преобразование при извлечении данных из базы данных?
ответ
Я бы всегда бросил по причинам, которые вы заявляете. В подводных камней я в курсе, что вы должны обрабатывать являются:
Вы, очевидно, должны быть в состоянии обрабатывать DBNulls (например, путем тестирования с Convert.IsDBNull)
В случае ExecuteScalar I верьте, что вам нужно проверить значение null, а также DBNull.
Службы SQL Server @@ IDENTITY и SCOPE_IDENTITY возвращают числовые (десятичные) даже для столбцов, объявленных как INT. В этом случае вы можете вставить дважды «(int) (десятичное) значение» или обработать его в коде T-SQL, например: .
INSERT INTO MyTable ... ВЫБОР AutoIdColumn ОТ MyTable ГДЕ AutoIdColumn = SCOPE_IDENTITY()
или
INSERT INTO MyTable ...
SELECT CAST(SCOPE_IDENTITY() AS INT)
Оба CAST
и CONVERT
используются, чтобы явно преобразовать экспрессию одного тип данных для другого. Однако с CONVERT
вы также можете указать формат.
Синтаксис для CAST:
CAST (expression AS data_type [ (length) ])
Синтаксис CONVERT:
CONVERT (data_type [ (length) ] , expression [ , style ])
Когда retreiving из RDBMS вы должны позволить водителю базы данных ручки маршалинг между нативной и требуемого типа.
CAST санкционирован стандартами SQL и работает на самом высоком количестве платформ РСУБД.
CONVERT доступен на нескольких платформах.
Если у вас есть многоплатформенные рекомендации, CONVERT следует использовать только для особых случаев, таких как настраиваемое форматирование, которое невозможно выполнить с помощью CAST.
- 1. дешифрование при извлечении данных из базы данных
- 2. при извлечении записи из базы данных?
- 3. Ошибка при извлечении JSON из базы данных
- 4. Исключение из памяти при извлечении огромных данных из базы данных
- 5. Увеличение производительности при извлечении данных из удаленной базы данных
- 6. Как getimagesize() при извлечении данных изображения из базы данных mysql
- 7. Библиотека для кэширования ссылок при извлечении данных из базы данных
- 8. Начать работу при извлечении данных из базы данных
- 9. Ошибка при извлечении данных слушателя из базы данных в blackberry
- 10. RuntimeError при извлечении данных из базы данных sqlite в android
- 11. Ошибка при извлечении данных из базы данных mysql
- 12. Ловля исключения при извлечении данных из базы данных SQLite Android
- 13. Как избежать специальных символов при извлечении данных из базы данных?
- 14. Соединение теряется при извлечении данных из базы данных
- 15. NullPointerException в android при извлечении данных из базы данных SQLite?
- 16. конвертировать строку в bool при извлечении данных из базы данных
- 17. NullPointerException при извлечении данных из базы данных sqlite
- 18. Правильный способ использования QVariant при извлечении данных из базы данных
- 19. Ошибка при извлечении данных IdentityUser из базы данных Azure
- 20. Выбор запроса не работает при извлечении данных из базы данных
- 21. Сломанная кодировка при извлечении данных из базы данных sqlite
- 22. дублирование данных при извлечении из базы данных в android
- 23. Как использовать потоки при извлечении данных из базы данных
- 24. Ошибка при извлечении данных из данных ядра
- 25. Ошибка при извлечении базы данных в ListView
- 26. Преобразование даты Epoch в стандартный формат при извлечении данных из базы данных
- 27. Кастинг или преобразование?
- 28. NullPointerException - проблема с блокировкой базы данных при извлечении данных из базы данных и хранении в массиве
- 29. PHP-усечение хэшированного пароля при извлечении из базы данных
- 30. Сериализованные разрывы массивов при извлечении из базы данных