의해 삽입 된 값을 나눈다 I 테이블 DECIMAL(10,2)
그 테이블의 행을 삽입하는 저장 과정에서 표시되는 항목이있다. 해당 열의 매개 변수는 다음과 같습니다. @FuelLiters AS DECIMAL(10, 2),
나는 ado.net을 사용하여이 저장 프로 시저를 호출합니다. 해당 열의 sql 매개 변수는 다음과 같습니다.SQL 서버 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 매개 변수는 이제 이와 같이 보이지만 여전히 동일한 문제입니다.
SqlParameter fuelParam = new SqlParameter();
fuelParam.SqlDbType = SqlDbType.Decimal;
fuelParam.ParameterName = "@FuelLiters";
fuelParam.Precision = 10;
fuelParam.Scale = 2;
fuelParam.Value = fuelLiters ;
cmd.Parameters.Add(fuelParam);
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
좋아, 내가 바보 오전, 해당 필드 당신은 SqlParameter에의 정밀도 및 스케일을 지정해야
"내가 뭘 잘못하고 있니?" - 어떤 코드에서는 당신이 우리에게 보여주지 않은 것입니다. –
첫눈에 코드 부수가 정확합니까? 저장 절차에 약간의 추가 작업이 있습니까? –
값을 설정하기 전에 정밀도와 눈금을 설정하면 안됩니까? – IvoTops