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...
shahkalpesh :
Adding to Marc's suggestion, you can change the code to \n\n\nIDbDataParameter prm = comm.CreateParameter();\n\n\nRest of the code should work fine.\nPrecision and Scale properties are \"explicit interface implementation\" in DbParameter.",
2009-02-05T01:04:31
Marc Gravell :
Have you tried setting Precision and Scale? Note you need to cast first.",
2009-02-05T00:56:18