现表中有一字段Price,字段类型decimal,长度是默认的9 精度18,小数4,sql语句参数化的时候应该怎么写
cmd.Parameters.Add(new SqlParameter("@Price", SqlDbType.Decimal, 9)); 这样写是不是无法达到预期效果

解决方案 »

  1.   


    public SqlParameter(string parameterName, SqlDbType dbType, int size, ParameterDirection direction, bool isNullable, byte precision, byte scale, string sourceColumn, DataRowVersion sourceVersion, object value);这个重载可以控制精度
      

  2.   

    byte precision, byte scale 这两个是不是控制精度的
      

  3.   

    cmd.Parameters["@Price"].Precision = (byte)18; 
    cmd.Parameters["@Price"].Scale = (byte)4;  
      

  4.   

    按道理是可以达到结果的,
    数据库                         C#程序               
    int                        int32
    text                      string
    bigint                    int64
    binary                   System.Byte[]
    bit                        Boolean
    char                      string
    datetime               System.DateTime
    decimal                 System.Decimal
    float                     System.Double
    image                   System.Byte[]
    money                  System.Decimal
    nchar                   String
    ntext                   String
    numeric                System.Decimal
    nvarchar               String
    real                      System.Single
    smalldatetime        System.DateTime
    smallint                 Int16
    smallmoney           System.Decimal
    timestamp             System.DateTime
    tinyint                   System.Byte
    uniqueidentifier      System.Guid
    varbinary              System.Byte[]
    varchar                String
    Variant                Object这也是在博客园上面看到的,博客园上面的文章很好