我在存儲過程中遇到問題。不要在SQL Server存儲過程中強制輪迴
在C#我有以下變量:
decimal ART12 = 10547,42;
和在存儲過程中,我有這樣的代碼:
@ART12 DECIMAL(18,2) = 0;
INSERT INTO #tmp (articolo, totale)
VALUES('12',@ART12)
表#tmp
具有這種結構:
CREATE TABLE #tmp
(
articolo varchar(10) null
,finoa varchar(50) null
,parametro varchar(30) null
,quantita decimal(18,2) null
,totale decimal(18,2) null
,annoesercizio int null
,idcompagnia int null
,idagenzia int null
,idagente int null
,progressivogestione int null
)
當我將變量ART12的值發送到存儲過程時,這是舍入自動。如果值爲10547,42,則代碼返回10547,00。但我需要10547,42!
任何解決方案? 非常感謝。
- 更新 - 這是funcion的C#代碼
SqlConnection sqlConn = new SqlConnection(m_connString);
sqlConn.Open();
SqlCommand cmd = new SqlCommand();
cmd.Connection = sqlConn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "sp_GetElencoArt00_Riepilogo";
SqlParameter spPars32 = new SqlParameter();
spPars32.ParameterName = "@ART12";
spPars32.SqlDbType = SqlDbType.Decimal;
spPars32.Value = ART12;
cmd.Parameters.Add(spPars32);
DataSet ds = new DataSet();
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;
da.Fill(ds);
sqlConn.Close();
sqlConn.Dispose();
SqlConnection.ClearPool(sqlConn);
sqlConn = null;
return ds;
你是如何變量的值傳遞給存儲過程? –
某處某處不尊重小數位數,但它不在您迄今向我們顯示的代碼片段中。因此,我們需要查看通過ADO傳遞參數的代碼以及存儲過程中對@ @ ART12的任何更改。 –
您是否嘗試過使用'10547.42'而不是'10457,42'?什麼是參數的數據類型? –