Сохранить десятичное число в базе данных из C # - PullRequest
0 голосов
/ 12 октября 2018

Я пытаюсь сохранить десятичные числа в базе данных SQL Server с типом столбца numeric(10,2).

Данные, переданные из текстового поля в базу данных с помощью параметризованной процедуры, как показано ниже

cmd.Parameters.Add(new SqlParameter("@PP", SqlDbType.Decimal)).Value = decimal.Parse(TB_PP.Text);

Моя проблема в том, что я могу ввести десятичное число непосредственно в таблицу базы данных, и при чтении его из базы данных в текстовое поле я получаю десятичное число

Но при сохранении его через текстовое поле сохраняется целое число, так что я должен использовать вместо SqlDbType.Decimal

Ответы [ 2 ]

0 голосов
/ 12 октября 2018

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

cmd.Parameters.Add(new SqlParameter("@PP", SqlDbType.Decimal) {
    Precision = 10, 
    Scale = 2 
 });

Мой опыт показывает, что тип данных SQL равен decimal(10,2), а не numeric, но попробуйте.

0 голосов
/ 12 октября 2018

Попробуйте использовать двойное вместо десятичного числа:

double.Parse(TB_PP.Text);
...