Ненужное преобразование Decimal

138
10 апреля 2022, 21:30

Проблема состоит в следующем:

Есть Data Studio 4.1.3 в которой работаю с DB2, в ней обращаюсь запросом к таблице к столбцу с типом int (содержит сумму в копейках), следующим запросом вывожу сумму в типе Decimal: SELECT decimal("SummaCurrAcc" / 100, 20, 2) as "Summa" from PBI."InfoYSR" выводит все правильно:

  1. 142168.94
  2. 22.79
  3. 263326.55

Но! Следующим кодом в VS:

public static void Load()
    {
        string sqlExpression = "SELECT decimal(\"SummaCurrAcc\" / 100, 20, 2) as \"Summa\"  from PBI.\"InfoYSR\" FETCH FIRST 10 ROWS ONLY";
        string connectionString = @"DSN=DB; UID=user; PWD=pass; DBQ=DB;";
        using (OdbcConnection connection = new OdbcConnection(connectionString))
        {
            connection.Open();
            OdbcCommand command = new OdbcCommand(sqlExpression, connection);
            OdbcDataReader reader = command.ExecuteReader();
            if (reader.HasRows)
            {
                while (reader.Read())
                {
                    string str = string.Empty;
                    for (int i = 0; i < reader.FieldCount; i++)
                    {
                        str += reader.GetValue(i);
                    }
                    Console.WriteLine(str);
                }
            }
        }
        Console.ReadKey();
    }

Выводит

  1. 14216894
  2. 2279
  3. 26332655

То есть попросту игнорирует преобразование в Decimal в запросе, хочу обратить внимание что столбец в C# по GetFieldType() имеет все-таки тип Decimal, а деление не происходит. В чем проблема?

Answer 1

Когда тип int делим на 100 то получаем в итоге тоже тип int. Нужно или сразу преобразовивать или делить на 100.0 SELECT decimal("SummaCurrAcc", 20, 2) / 100 as "Summa" from PBI."InfoYSR" или SELECT "SummaCurrAcc"/ 100.0 as "Summa" from PBI."InfoYSR"

READ ALSO
Как лучше работать со словарем

Как лучше работать со словарем

У меня есть метод, на вход подается простой словарь (Dictionary cars), который содержит цвет и модель(key-color, values-model)мне нужно нарисовать таблицу в которой...

166
Загрузка связанных данных EF

Загрузка связанных данных EF

Имеется таблица Tickets, у которой несколько связейЧтобы загрузить все необходимые связанные данные, получается такой запрос:

95
Нужно ввести значение переменной с клавиатуры в классе и в основном коде эту переменную добавить в List&lt;&gt;

Нужно ввести значение переменной с клавиатуры в классе и в основном коде эту переменную добавить в List<>

У меня есть 4 фигуры (соответственно 4 класса) и нужно каждой фигуре ввести свои значения, чтобы подсчитать площадьНужно реализовать ввод...

295