zoukankan      html  css  js  c++  java
  • 关于C#中的decimal返回Sqlserver中的decimal类型时会被取整的问题

    在sqlserver 2000的存储过程中定义为:
        @ExpendedTime decimal(10,2) output
    在C#中定义接收参数:
        System.Data.SqlClient.SqlParameter param;
        param = new System.Data.SqlClient.SqlParameter("@ExpendedTime", System.Data.SqlDbType.Decimal);
        param.Direction = ParameterDirection.Output;

    这时返回的结果总为取整后的值,如49.5就返回50

    在事件探查器中发现:
        declare @P1 numeric(29,0)
        set @P1=50
        exec GetThreadExpendedTime @ThreadId = 4, @ExpendedTime = @P1 output
        select @P1

    decimal类型变成没有小数位了,顾返回的总是取整以后的值
    修改C#代码,将:
        param = new System.Data.SqlClient.SqlParameter("@ExpendedTime", System.Data.SqlDbType.Decimal);
    改为:
        param = new System.Data.SqlClient.SqlParameter("@ExpendedTime", System.Data.SqlDbType.Float);
    问题解决。

               
  • 相关阅读:
    菜鸟fork()创建进程新见解
    Linux下select函数的使用
    URAL 1029 Ministry
    URAL 1036 Lucky Tickets
    URAL 1031 Railway Tickets
    URAL 1028 Stars
    URAL 1032 Find a Multiple
    URAL 1037 Memory Management
    URAL 1033 Labyrinth
    URAL 1039 Anniversary Party
  • 原文地址:https://www.cnblogs.com/wuliang/p/967753.html
Copyright © 2011-2022 走看看