C#中如何为参数SqlDbType.Decimal指定精度与小数位数

C#中如何为参数SqlDbType.Decimal指定精度与小数位数 在.net中操作数据库的时候,我们更多的是推荐使用参数化来传值,但这其中就会产生一些疑惑,比如使用Decimal时如何保持与数据库中一样的精度与小数位数呢? 利用参数的Precision与Scale的属性即可,示例如下: ///<summary> ///更新一条数据 ///</summary> publicDictionaryEntryUpdate…

大家好,又见面了,我是你们的朋友全栈君。

在.net中操作数据库的时候,我们更多的是推荐使用参数化来传值,但这其中就会产生一些疑惑,比如使用Decimal时如何保持与数据库中一样的精度与小数位数呢?

利用参数的Precision与Scale的属性即可,示例如下:

///<summary >
///更新一条数据
///</summary >
public DictionaryEntry Update_DictionaryEntry(SDERP.Model.storehouse.Storage_GoodsUnitExchange model)
{

……
SqlParameter[] parameters = {

new SqlParameter(“@ID”, SqlDbType.Int,4),
new SqlParameter(“@GID”, SqlDbType.VarChar,50),
new SqlParameter(“@ChangeRate”, SqlDbType.Decimal,13)
};
parameters[0].Value = model.ID;
parameters[1].Value = model.GID;
parameters[2].Value = model.ChangeRate;
parameters[2].Precision = 28;
parameters[2].Scale = 10;

return new DictionaryEntry(strSql, parameters);
}

这样,我们就指定了”@ChangeRate”参数的精度为28,最大小数位数为10。

注意:其实在.net中,如果没有特殊的情况,我们并不需要为参数设置精度与小数位数,在默认的情况下,参数会如实的传递用户的值,并不会像数据库一样如果不设置小数位数,那么小数位数就是0。而且如果在程序中设置了精度与小数位数,那么在后期的程序的修改中也会带来很大的工作量,试想一下,如果我们在此 处不设置,那么以后要改变decimal的小数位数,只要改掉数据库中对应的字段长度就行了,而程序不用做任何改更。而如果我们在程序中也设置了小数位 数,那么在改了数据库同时还得修改程序。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/162192.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • RabbitMQ流控-FLow Control

    RabbitMQ流控-FLow Control当Connection发布消息的速度太快,队列无法跟上(消费速度低于生产速度),RabbitMQ会降低Connection的速度,无需配置。流控的Connection可以在rabbitmqctl、管理UI和HTTPAPI响应中显示flow状态。这意味着连接每秒要经历多次阻塞和解除阻塞,以便将消息传入的速度保持在服务器其他部分(例如,将这些消息路由到的队列)能够处理的速度。一般来说,处于流…

    2022年5月27日
    89
  • 根据eia/tia接线标准,简述双绞线的线序_rj45接线图

    根据eia/tia接线标准,简述双绞线的线序_rj45接线图今日看到一篇文章    〈巧识妙记双绞线〉原文:http://www.szerc.com/blog/more.asp?name=goodchun&id=3791 作者总结的两句口决真的很妙,不愧是工作在教育第一线的人民教师。以前我也自己写了个口诀,是“A绿B橙,中蓝尾褐,边白先中白后”现在看起来真实迂腐可陈。自己在大春老师的口诀上改了改,将双单、单双——双色在单位,单色在双位,即花线在前也总结进

    2025年12月14日
    4
  • python读取图像的几种方法

    python读取图像的几种方法方法一:利用PIL中的Image函数,这个函数读取出来不是array格式这时候需要用np.asarray(im)或者np.array()函数区别是np.array()是深拷贝,np.asarray()是浅拷贝fromPILimportImageimportnumpyasnpI=Image.open(‘./cc_1.png’)I.show()

    2022年6月19日
    35
  • 查看linux执行的命令记录_tail命令查看最后100行日志

    查看linux执行的命令记录_tail命令查看最后100行日志前言我们每次敲打linux命令的时候,有时候想用之前用过的命令,一般情况下,我们都会按↑↓箭头来寻找历史的命令记录,那如果我想用1天前执行的某条命令,难道还要按↑100次?显示这样是不现实的,我们可

    2022年7月28日
    22
  • 二进制减法图解_二进制加法的算法图解

    二进制减法图解_二进制加法的算法图解二进制减法类似于十进制的减法,我们从十进制的减法来推出二进制减法如何进行运算。十进制减法例如74323-47562=26761的运算。灰色部分为计算过程,绿色字为被减一得到的数,红色字为借一后得到的数。在运算过程中,从右往左逐位进行计算。3-2=1;2不够减6,向前借一后加10变成12;12-6=6;3在上一步被借一所以减为2,2不够减5,…

    2022年9月25日
    5
  • jediscluster 关闭 连接池_Redis——JedisCluster

    jediscluster 关闭 连接池_Redis——JedisClustersmart客户端实现原理(追求性能,不使用代理)从集群中选一个可运行节点,使用clusterslots初始化槽和节点映射。将clusterslots的结果映射到本地,为每个节点创建JedisPool。执行命令执行命令执行命令的过程简单来说,就是通过CRC16计算出key的槽,根据节点映射直接访问目标节点,如果出错,就随机挑选一个节点,通过moved重定向访问目标节点,并且重新初始化节点映射。好…

    2022年10月10日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号