In c#, I use a decimal out DbParameter for a Sql Server stored procedure. I create parameter like that
DbParameter prm = comm.CreateParameter(); prm.ParameterName = '@Price'; prm.DbType = DbType.Decimal; prm.Direction = ParameterDirection.Output; comm.Parameters.Add(prm); //and set the value of comm.Parameters['@Price'] to a variable, decimal.TryParse(comm.Parameters['@Price'].Value.ToString(), out this.ProdPrice);
But the value of the out parameter is allways rounded.
If i call the same stored procedure from Sql Server Management Studio, i can get this out parameter properly with it’s precision
There is not a precision or scale properties on DbParameter. And i have to use DbParameter on System.Data.Common namespace for fetching the data
How can i being able to retieve decimal value with its full precision
Thanks in advance…
Adding to Marc’s suggestion, you can change the code to
IDbDataParameter prm = comm.CreateParameter();Rest of the code should work fine. Precision and Scale properties are ‘explicit interface implementation’ in DbParameter.