Кажется, меня мучает этот вопрос, и хотя я понимаю, как это должно работать, я не вижу леса за деревьями..
В основном у меня есть ситуация, когда у меня есть хранимая процедура SQL 2008.. очень простая.. простые varchar, int и т. д. Поскольку я получаю данные значения/пары из javascript, конечно, я неявно не знаю DbType для установки. Я знаю, что это звучит немного странно, и технически я мог бы добавить какой-нибудь тег к имени поля, чтобы указать фактический тип.
Итак, сейчас я пытаюсь сделать следующее:
(Я использую блок доступа к данным корпоративной библиотеки, но db является объектом базы данных/объектом соединения) - также val/pairs взяты из хеш-таблицы.
db.DiscoverParameters(cmd);
IDictionaryEnumerator de;
de = PDMdata.GetEnumerator();
while (de.MoveNext())
{
DbType ptype = cmd.Parameters[de.Key.ToString()].DbType;
db.AddInParameter(cmd, de.Key.ToString(), ptype, (ptype)de.Value.ToString());
}
Для справки, db.AddInParameter принимает объект Command, имя параметра, тип параметра и значение параметра.
Как видите, я пытаюсь привести значение к правильному типу SQL DbType... но, конечно, он пытается использовать обычный тип С#.
Любые идеи преобразования значения в динамический SQL DbType??
Заранее спасибо за вашу помощь..