2013-11-16 3 views
0

Я вставляю простой объект в базу данных, используя Linq2Sql (да, да, я скоро перейду на EF).Вставка записи с десятичным полем - сокращение всех десятичных знаков

Этот объект имеет десятичное значение. Когда я отлаживаю, я вижу, что стоимость цены равна 6.8.

Однако, когда я вставляю в базу данных, значение равно 7. Тип данных поля - decimal(18, 0).

Если это помогает, я думаю, что это так, потому что я на датском компьютере, а закругляющий символ - «,», а не «.».

Мой код вставки:

var order = new PlacedOrder() 
{ 
    DateCreated = DateTime.Now, 
    UserId = userid, 
    PaymentInfo = paymentInfoId, 
    ShippingInfo = shippingInfoId, 
    OrderState =orderState.ToString(), 
    PaymentMethod = paymentMethod.ToString(), 
    Email = email, 
    Phone = phone, 
    PdfFilePath = pdfPath, 
    Price = price, 
    PriceVat = vat 
}; 

db.PlacedOrders.InsertOnSubmit(order); 
db.SubmitChanges(); 

Любые идеи?

+0

Возможный дубликат [Как хранить десятичные значения в SQL Server?] (Http://stackoverflow.com/questions/813287/how-to-store-decimal-values-in-sql-server) – Noctis

ответ

2

Измените тип данных с decimal(18, 0) на decimal(18, 2), чтобы сохранить значения до 2 знаков после запятой или `decimal(n,m)' для n исправлений с m десятичными знаками.

Поскольку в настоящее время тип данных decimal(18, 0), десятичные значения не хранятся в БД.

+0

вам действительно нравится редактировать, а? :) Я подсчитал 5 до сих пор ... – Noctis

+0

Спасибо, решил мою проблему! Я буду награждать, если он не будет закрыт в течение следующих 4 минут из-за дублирования ;-) –

Смежные вопросы