2012-10-02 33 views
1

我在表DECIMAL(10,2)中有一個如下所示的列,並在表中插入行。該列的參數如下所示@FuelLiters AS DECIMAL(10, 2),
我使用ado.net調用此存儲過程。該列的SQL參數看起來像這樣Sql Server 2008中的十進制(10,2)將插入的值除以100

cmd.Parameters.Add(@FuelLiters, SqlDbType.Decimal).Value = fuelLiters; 
(it's decimal value) 

不管我做的是sql修改我的值,所以它有2個小數。如果fuelLiters = 56,它將保存在數據庫中0.56。如果fuelLiters = 75.4,它將保存在數據庫7.54中。

我在做什麼錯了?

我的sql參數現在看起來像這樣,但仍然是同樣的問題。 LE:我修改了sql參數,以便在設置精度和小數位數後設置該值,並添加存儲過程。

CREATE PROCEDURE [dbo].[SaveFuel] 
    @Id AS INT, 
    @RegNumber AS NVARCHAR(50), 
    @FuelLiters AS DECIMAL(10, 2) 
AS 
BEGIN 

    INSERT INTO [dbo].[Fuel] 
     (
      [Id],  
      [RegNumber], 
      [Fuel_litres]   
     ) 
     VALUES 
     (
      @Id, 
      @RegNumber, 
      @FuelLiters 
     ) 

END 

好吧,我笨,有一個觸發我沒有注意到這是在該領域

+2

「我在做什麼錯了?」 - 在某些代碼中,你沒有向我們展示過。 –

+0

代碼apperar正確乍一看,商店的程序是否做了一些額外的工作? –

+0

在設置數值之前,您不應該設置精度和比例嗎? – IvoTops

回答

相關問題