В чем разница между DbType и Type в SqlParameter? - PullRequest
1 голос
/ 31 марта 2012

Можете ли вы объяснить мне разницу между Type и DbType в параметре источника данных? Какова лучшая практика присвоения этих двух свойств?

Ответы [ 3 ]

5 голосов
/ 31 марта 2012

Тип Представляет объявления типов: типы классов, типы интерфейсов, типы массивов, типы значений, типы перечисления, параметры типов, определения универсальных типов и открытые или закрытые построенные универсальные типы.

как Int32, String, сложные типы

это для референа переднего конца

ref: http://msdn.microsoft.com/en-us/library/system.type.aspx

Несмотря на то, DBTYPE Указывает специфический для SQL Server тип данных поля, свойства, для использования в SqlParameter.

ref: http://msdn.microsoft.com/en-us/library/system.data.sqldbtype.asp

Таким образом, это означает: вы должны использовать Type при обращении из БД к C # / VB

и DBType при обращении / передаче значений в БД из C # / VB

Надеюсь, это поможет ...

2 голосов
/ 16 марта 2016

Ответ не всегда годится. В некоторых случаях установка DBType параметра процедуры из VB .Net завершается неудачно без причины (даже если для [param] .DBType установлено значение sqlDBType.Decimal, для параметра [param] .sqlDBType установлено значение DateTime, что приводит к недопустимой ошибке приведения, в то время как вызывая процедуру с допустимыми десятичными значениями для параметра). Решением было то, что мне пришлось установить [param] .sqlDBType специально вместо того, чтобы устанавливать свойство DBType. До сих пор не ясно, что все это на самом деле означает.

0 голосов
/ 22 декабря 2016

С MSDN документы :

SqlDbType и DbType связаны.Следовательно, установка DbType изменяет SqlDbType на поддерживающий SqlDbType.

...