Я новичок в этом.Я пишу хранимую процедуру clr, которая вызывает другую хранимую процедуру, чтобы получить значение, которое используется в вычислениях.
Хранимая процедура возвращает int (я полагаю, SqlInt32? Тип значения в таблице int), который затем необходимо преобразовать в десятичную.
Вот код, который у меня есть:
public static int CalculateMyValues(SqlDecimal aMyValue, SqlString aMyValueType, out SqlDecimal aResult)
{
aResult = 0;
try
{
SqlConnection conn = new SqlConnection("context connection=true");
SqlCommand cmd = new SqlCommand("sp_GetType", conn);
cmd.Parameters.AddWithValue("@myValueType", aMyValueType);
cmd.CommandType = CommandType.StoredProcedure;
conn.Open();
object type = cmd.ExecuteScalar();
conn.Close();
decimal typeForCalculation = Convert.ToDecimal(type);
decimal value = Convert.ToDecimal(aMyValue); // **
Calculations calc = new Calculations();
decimal result = calc.DoCalculation(typeForCalculation, value);
Я получаю исключение (я думаю, там видно ******):
Невозможно сотворитьобъект типа 'System.Data.SqlTypes.SqlDecimal' для типа 'System.IConvertible'.
Есть идеи?Спасибо.