日期:2014-05-18  浏览次数:20994 次

关于c#中decimal和sql server中decimal数据类型的问题
我数据库中有个字段是decimal(8,2)类型   长度8,精度2    
我在c#中要通过存储过程把它读出来(输出参数)  
com.Parameters.Add( "@price ",   SqlDbType.Decimal);   com是SqlCommand对象
如果数据库中价格是15.55   那么读出来在c#中就是16   也就是怎么在c#中限制这个decimal的精度   使在c#中读出来和数据库中是一致的

下面是全部代码:
                        using(   SqlConnection   sqlConn   =   new   SqlConnection()   )
                        {
                                sqlConn.ConnectionString   =   "server=(local);database=myDataBase;uid=sa;pwd= ";
                                sqlConn.Open();
                                SqlCommand   com   =   new   SqlCommand( "pd_GetBookPrice ");
                                com.Connection   =   sqlConn;
                                com.CommandType   =   CommandType.StoredProcedure;

                                com.Parameters.Add( "@id ",   SqlDbType.Int);
                                com.Parameters[ "@id "].Value   =   1;

                                com.Parameters.Add( "@price ",   SqlDbType.Decimal);
                                com.Parameters[ "@price "].Direction   =   ParameterDirection.Output;
                           


                                com.ExecuteNonQuery();

                                label3.Text   =   com.Parameters[ "@price "].SqlValue.ToString();
/////这里打印出来   如果数据库中是15.55   那么就变成16

                                sqlConn.Close();
                        }

------解决方案--------------------
decimal 数据类型
http://www.cnblogs.com/enuosky/archive/2006/07/21/456206.html
Problem 1002: Big Decimal Addition
http://www.cnblogs.com/NickyYe/archive/2007/02/06/642508.html