Преобразование десятичного типа sql в тип.net float

У меня есть десятичные (18,2) данные в sql и я устанавливаю float свойство класса в.net. Когда я выбираю объект.net, выдается такая ошибка:

The 'DiscountRate' property on 'Product' could not be set to a 'Decimal' value. You must set this property to a non-null value of type 'Single'.

У вас есть предложение?

1
02 окт. '12 в 17:31
источник поделиться
4 ответов

В вашем коде.NET двойной или десятичный тип для десятичного (18, 2).

См. Здесь для перекрестной ссылки от SQL к типам.NET.

Теперь, если вы десятичный столбец может быть нулевым, убедитесь, что вы используете десятичное число с нулевым значением или

public decimal? DiscountRate { get; set; }
2
02 окт. '12 в 17:33
источник

Вы можете использовать Decimal Type

Ссылка: http://msdn.microsoft.com/en-us/library/system.decimal.aspx

Вы можете прочитать Specifying Parameter Data Types section

Ссылка: http://msdn.microsoft.com/en-us/library/yy6y35y8.aspx

0
02 окт. '12 в 17:35
источник

Вы должны изменить свойство на decimal. Это упрощает преобразование и защищает вас от ошибок округления, которые появляются с помощью float или double.

Здесь обстоятельное обсуждение вопроса: десятичное или двойное

0
02 окт. '12 в 17:38
источник

Я бы предположил, что вам нужно либо изменить свою собственность в вашем классе.NET на десятичный тип, либо сделать явное преобразование в float при его настройке. Который вы используете, действительно зависит от вашего кода, но использование десятичного типа кажется более правильным без какого-либо дальнейшего контекста.

0
02 окт. '12 в 17:35
источник

Посмотрите другие вопросы по меткам или Задайте вопрос