2013-08-09 3 views
0

У меня есть объект SqlParameter, и я хочу получить эквивалентный sql для типа данных, например. varchar(50), int, decimal(1, 2)Переход от SqlParameter к типу SQL

Я начал смотреть на строительство динамически путем включения SqlDbType, чтобы определить, если мне нужно использовать размер собственность и т.д., однако это очень многословно и ошибок.

Есть ли способ сделать это встроенным в инфраструктуру .net?

+3

Что вы делаете, это требует, чтобы вы это знали? 99% времени вы можете позволить водителю справиться с этим. Покажите свой код ... – tomfanning

+0

У меня есть SqlCommand с выражением select (и параметрами). Я хочу создать команду sql, которая создаст хранимую процедуру с теми же параметрами и вернет те же результаты. –

ответ

1

SQL Server Type Mappings имеет необходимую информацию.

Я начал смотреть на строительство динамически путем включения SqlDbType, чтобы определить, если мне нужно использовать размер собственность и т.д., однако это очень многословно и ошибок.

Это маловероятно, что вы можете улучшить это, страница говорит, что это много:

SQL Server и .NET Framework основаны на различных системах типа. Например, структура .NET Framework Десятичная имеет максимальный масштаб 28, в то время как десятичное SQL Server и числовые типы данных имеют максимальный масштаб 38

Для примера Decimal и decimal, вы всегда можете исправить шкала в 28. То есть, всегда требуется максимальная точность и не пытайтесь ее изменить.

+0

Я понимаю, что вы говорите (учитывая тип .net У меня недостаточно информации для получения типа sql), но у меня есть 'SqlParameter', в котором есть информация re. размер/масштаб/точность, чтобы я мог получить точную декларацию sql. Я полагаю, что я должен взять от этого ответа, что мне нужно будет реализовать это сам. –

Смежные вопросы