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)
上一篇 2022年7月20日 上午11:36
下一篇 2022年7月20日 上午11:36


相关推荐

  • pstack 与 strace[通俗易懂]

    pstack 与 strace[通俗易懂]strace  strace是可以记录程序系统调用的一个工具,它可以记录该程序系统调用的各个延时情况。-c统计每一系统调用的所执行的时间,次数和出错的次数等.-d输出strace关于标准错误的调试信息.-f跟踪由fork调用所产生的子进程.-ff如果提供-ofilename,则所有进程的跟踪结果输出到相应的filename.pid中,pid是各进程的进程号.-F尝试跟踪vf…

    2025年11月17日
    6
  • 二分查找判定树(二分查找树平均查找长度)

    如果data[0]等于一组数据中最小的,那么就会增加查找的时间复杂度。平衡二叉树(追求极致的平衡),现实需求很难满足,红黑数孕育而生

    2022年4月11日
    181
  • js合并数组的方法大全

    js合并数组的方法大全本期 主要总结了一些关于数组合并的方法 有传统的 js 合并数组的方法 也有 ES6 合并数组的方法 先声明两个数组 vara 1 2 3 4 varb 7 8 9 1 concat 该方法可合并多个数组 原数组将保持不变 生成新的数组 varc a conca b 2 for 循环 该方法代码不够简洁 不推荐使用 for variinb a push b i

    2026年3月19日
    2
  • li清除圆点_li标签的添加圆点

    li清除圆点_li标签的添加圆点不管是ul还是ol中的li前面始终有个小圆点,以前没有发现问题,都是直接给ul增加list-style:none;属性,可今天屡试不爽的属性出现问题了,上图通过两张截图可以清晰的看到虽然小圆点去掉了,但是还是占着位置。典型的占着**不**,而且还影响视图效果,怎么办?先看看样式,里面没有margin或者padding这类的东东,然后看看盒模型,果然:从盒模型可以看到ul有个padding,外围有m…

    2025年7月7日
    5
  • 为什么我拖了一个多月才开始使用OpenClaw?(附接入飞书完整详细教程,新手必看)

    为什么我拖了一个多月才开始使用OpenClaw?(附接入飞书完整详细教程,新手必看)

    2026年3月13日
    2
  • arcgis二次开发python-ArcGIS 二次开发专题 序「建议收藏」

    arcgis二次开发python-ArcGIS 二次开发专题 序「建议收藏」依据ArcGIS组件式开发及应用的目录结构,将系统性的学习ArcGIS二次开发的道路分为三个部分。这个系列包含以下三个部分:Part1基础1.前言1.1组件式GIS1.2ArcObject开发的特点与历史2.使用ArcGISEngine控件编程3.几何形体对象Geometry4.地图组成5.空间数据符号化6.空间数据管理7.空间分析8.空间数据编辑9.地图输出10…

    2022年7月23日
    14

发表回复

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

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