Заполните ParameterCollection w / sp_columns (или INFORMATION_SCHEMA.Columns) Результаты - PullRequest
0 голосов
/ 29 мая 2009

Я хотел бы построить объект ParameterCollection на основе результатов execute sp_columns MyTableName или SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = 'MyTableName'.

Проблема, с которой я сталкиваюсь, заключается в назначении соответствующего типа данных каждому параметру ... Я не уверен, как собрать эту информацию из любого из двух вышеупомянутых запросов и преобразовать ее в System.Data.DbType или System.TypeCode .

Любая помощь очень ценится.

Ссылки: MSDN: sp_columns , MSDN: информационная схема. Колонки

Редактировать: Я предполагаю, что мне нужна функциональность, аналогичная Type.GetType("TypeName"), которая будет принимать тип данных SQL. Например, DbType.GetType("int") или DbType.GetType("varchar").

Редактировать: Ссылки из ответа: MSDN: Enum.Parse Method

1 Ответ

1 голос
/ 30 мая 2009

Это действительно очень просто сделать :-) SqlDbType - это enum, и в классе Enum есть хорошая статическая функция, которая выполняет то, что вы ищете:

 private  SqlDbType ConvertType(string typeName)
 {
      return (SqlDbType)Enum.Parse(typeof(SqlDbType), typeName, true);
 }

При этом у вас не должно возникнуть проблем с преобразованием вывода из вашего запроса INFORMATION_SCHEMA в набор SqlParameters.

...