В Rails есть отличный способ поиска имен столбцов и ожидаемых типов данных из БД, что упрощает программирование.
Я пытаюсь создать что-то подобное на C# .NET, потому что у нас есть большие таблицы, которые постоянно меняются. Я добавлю такие параметры:
SqlParameter param = new SqlParameter("parametername", *SqlDbType.Int*);
param.Direction = ParameterDirection.Input;
param.Value = 0;
comm.Parameters.Add(param);
Обратите внимание на SqlDbType. Как я могу это получить? Если я получаю DataColumns из DataSet, все, что я могу получить, это системные типы, такие как System.string.





почему бы просто не позволить ADO.NET обнаружить это автоматически:
SqlParameter param = new SqlParameter("parametername", value);
Конечно, вам и Direction не нужно:
comm.Parameters.Add(new SqlParameter("parametername",value));
Я вроде как фанат делать вещи в одну строчку :)
Для нашего проекта мы запрашиваем таблицы INFORMATION_SCHEMA перед построением наших операторов SQL. Если вы вставите значение в DATA_TYPE из INFORMATION_SCHEMA.COLUMNS в Enum.Parse, это должно дать вам правильное значение.