快疯了,System.ArgumentException: 参数值“0.00”超出范围。

问题描述

数据库字段为Decimal精度18,小数位为2,添加数据的时候前台赋值的时候,用0,总是异常:0.00超出范围。。。不知道是什么意思用0M,0.00都不行。

解决方案

解决方案二:
小数位数为2?如果每一分钱都有误差,随便进行一点除法、乘法等等,很快误差就扩大到元了。
解决方案三:
先别管我的小数位是几位好吗?能告诉我为什么会出现这个错误吗?引用1楼sp1234的回复:

小数位数为2?如果每一分钱都有误差,随便进行一点除法、乘法等等,很快误差就扩大到元了。

解决方案四:
你插入前转换为Decimal类型了没
解决方案五:
你是否转换类型了?还是直接把INT插入进去呢?0.00这样才能!
解决方案六:
我是直接用0,用0.00都不行啊。但用120又可以。引用4楼hou306010849的回复:

你是否转换类型了?还是直接把INT插入进去呢?0.00这样才能!

解决方案七:
引用5楼dowoocn的回复:

我是直接用0,用0.00都不行啊。但用120又可以。引用4楼hou306010849的回复:你是否转换类型了?还是直接把INT插入进去呢?0.00这样才能!

那直接在数据库插入0或者0.00都不行吗?如果行写代码插进去也行的
解决方案八:
手动输入数据,没有任何问题啊。引用6楼chinajiyong的回复:

引用5楼dowoocn的回复:我是直接用0,用0.00都不行啊。但用120又可以。引用4楼hou306010849的回复:你是否转换类型了?还是直接把INT插入进去呢?0.00这样才能!那直接在数据库插入0或者0.00都不行吗?如果行写代码插进去也行的

解决方案九:
引用7楼dowoocn的回复:

手动输入数据,没有任何问题啊。引用6楼chinajiyong的回复:引用5楼dowoocn的回复:我是直接用0,用0.00都不行啊。但用120又可以。引用4楼hou306010849的回复:你是否转换类型了?还是直接把INT插入进去呢?0.00这样才能!那直接在数据库插入0或者0.00都不行吗?如果行写代码插进去……

我想看代码
解决方案十:
publicintInsert(ClickDatamodel){StringBuilderstrSql=newStringBuilder();strSql.Append("insertintoClickData(");strSql.Append("PId,Ip,Area,AddTime,state,iscore)");strSql.Append("values(");strSql.Append("@PId,@Ip,@Area,@AddTime,@state,@iscore)");strSql.Append(";select@@IDENTITY");SqlParameter[]parameters={newSqlParameter("@PId",SqlDbType.Int),newSqlParameter("@Ip",SqlDbType.VarChar,50),newSqlParameter("@Area",SqlDbType.VarChar,50),newSqlParameter("@AddTime",SqlDbType.DateTime),newSqlParameter("@state",SqlDbType.Int),newSqlParameter("@iscore",SqlDbType.Decimal)};parameters[0].Value=model.PId;parameters[1].Value=model.Ip;parameters[2].Value=model.Area;parameters[3].Value=model.AddTime;parameters[4].Value=model.State;parameters[5].Value=model.IScore;parameters[5].Scale=2;objectobj=DbHelperSQL.GetSingle(strSql.ToString(),parameters);if(obj==null){return0;}else{returnConvert.ToInt32(obj);}}

就是第五个参数。执行:DbHelperSQL.GetSingle(strSql.ToString(),parameters);就出错了。前面断点数据都正常。
解决方案十一:
decimal.Zero呢
解决方案十二:
看下表设置了什么条件没。比如约束之类。
解决方案十三:
引用9楼dowoocn的回复:

C#codepublicintInsert(ClickDatamodel){StringBuilderstrSql=newStringBuilder();strSql.Append("insertintoClickData(");strSql.Append("PI……

设置parameters[5].Precision=10;//设置Precision的值
解决方案十四:
好像是可以了,但还没有在真实的环境中测试,晚上回去试下。能说下为什么要设置这个Precision吗?我以前都没有设啊,也没出问题。引用12楼chinajiyong的回复:

引用9楼dowoocn的回复:C#codepublicintInsert(ClickDatamodel){StringBuilderstrSql=newStringBuilder();strSql.Append("insertintoClickData(");strSql.Append("PI……设置parameters[5].P……

解决方案十五:
引用13楼dowoocn的回复:

好像是可以了,但还没有在真实的环境中测试,晚上回去试下。能说下为什么要设置这个Precision吗?我以前都没有设啊,也没出问题。引用12楼chinajiyong的回复:引用9楼dowoocn的回复:C#codepublicintInsert(ClickDatamodel){StringBuilderstrSql=newSt……

Precision用于表示Value属性的最大位数。默认值为0,它表示数据提供程序设置Value的精度。不验证Decimal参数值的Precision或Scale。这会导致在数据源处插入截断数据看看吧
解决方案:
晕,非常奇怪。在家里执行:parameters[5].Precision=10;这一句的时候就异常了。。。。这是怎么回事啊,然后看到Perecision的值为1引用14楼chinajiyong的回复:

引用13楼dowoocn的回复:好像是可以了,但还没有在真实的环境中测试,晚上回去试下。能说下为什么要设置这个Precision吗?我以前都没有设啊,也没出问题。引用12楼chinajiyong的回复:引用9楼dowoocn的回复:C#codepublicintInsert(ClickDatamodel){Str……

时间: 2024-09-15 12:35:24

快疯了,System.ArgumentException: 参数值“0.00”超出范围。的相关文章

double 类型输出0.00

问题描述 给一个double类型的变量复制0.00,打印出来是0.0,有没有方法是double类型保存的是0.00? 解决方案 解决方案二:doubled=12.1;DecimalFormatdf=newDecimalFormat("#.00");System.out.println(df.format(d)); 解决方案三:引用1楼ylz2007的回复: Javacodedoubled=12.1;DecimalFormatdf=newDecimalFormat("#.00&

数据库表中的一列值为:2007-06-12 列的存储类型为:datatime 但是在Asp.net网面上通过DataList绑定后显示的值为:2007-06-12 0:00:00?????????????????

问题描述 数据库表中的一列值为:2007-06-12列的存储类型为:datatime但是在Asp.net网面上通过DataList绑定后显示的值为:2007-06-120:00:00?怎么样通过DataList控件绑定后让他不显示:0:00:00,而只显示:1985-06-12 解决方案 解决方案二:sql语句不要直接选出时间字段t,拼字符串year(t)+month(t)+day(t)asnewtime解决方案三:'<%#Bind("DateTime","{0:yyy

System.ArgumentException: 值类型与列类型不匹配

问题描述 刚下载了一个OA系统源码.但出现了如题上的错误.代码如下.publicstaticDataTableConvertDataReaderToDataTable(SqlDataReaderdataReader){DataTabledatatable=newDataTable();DataTableschemaTable=dataReader.GetSchemaTable();//动态添加列try{foreach(DataRowmyRowinschemaTable.Rows){DataCol

“System.ArgumentException”类型的未经处理的异常出现在 mscorlib.dll 中。 其他信息: 实例方法的委托不能具有空“this

问题描述 本人在做数据库课设,没有学过C#,只学过C和C++,做一个简易聊天室今天在连接数据库时,调试出了问题,而错误列表没有出,不知何处下手,求C#大神帮忙以下是代码namespace登录界面{partialclassForm1{///<summary>///必需的设计器变量.///</summary>privateSystem.ComponentModel.IContainercomponents=null;///<summary>///清理所有正在使用的资源.//

Linux编译内核出现“kernel Panic:VFS:Unable to mount root fs on 0:00”错误

安装了一台 Linux 服务器,想自己编译内核,一步一步做下来, GRUB 也添加进去了,但出现" kernel Panic:VFS:Unable to mount root fs on 0:00 " 的错误,请问是怎么回事? 一般情况下initrd这个文件在台式机上不是必须的,但是在有SCSI设备的服务器上却是必须的.有可能因为编译内核的时候没有产生initrd那个文件,所以会有上面的错误提示. 用户可以使用mkinitrd命令来生成一个initrd.img文件,然后加入GRUB,重

visual studio-我都快疯掉了,谁能给一个windows 10 sdk的完整离线安装包,谢谢

问题描述 我都快疯掉了,谁能给一个windows 10 sdk的完整离线安装包,谢谢 谁能给一个这个链接里的sdksetup.exe所安装的所有程序的离线安装包https://dev.windows.com/en-us/downloads/windows-10-sdk 我都快疯掉了,装的vs2015打不开通用应用 我用sdksetup.exe装总是报错装不了 解决方案 http://pan.baidu.com/s/1i3B27h7 这里有一个.不过是10240的.按理说也可以用. 解决方案二:

调试器-符号服务器要怎么弄?急,我快疯了

问题描述 符号服务器要怎么弄?急,我快疯了 我在电脑上安装了Debugging Tools for Windows(x86),用来作为 Qt Creator 的调试器,但总是不能调试,查了下资料,好像是说没有Symbol Server 符号服务器什么的,要弄一下什么的,跪求大神帮忙,我没币了.我下载的这个调试器有被Qt自动检测到的. 解决方案 一个是设置微软的symbol符号服务器,还有一个就是你要有你自己代码的symbol文件.QT不知道是不是会生成,一般是VS可以生成

为什么结果是 0.00)

问题描述 Eclipse下,Android编程中:doublenum=0.009;StringnumStr=Double.toString(0.009);DisplayToast("0.009str:"+numStr);//结果为:0.00)*******publicvoidDisplayToast(Stringstr){Toast.makeText(this,str,Toast.LENGTH_LONG).show();}为什么显示结果为0.00)???? 解决方案 解决方案二:该回复

已授予对“System, PublicKey=”的友元访问,但输出程序集的名称为“system, Version=1.0.0.0, Culture=neutra

问题描述 错误1已授予对"System,PublicKey=00000000000000000400000000000000"的友元访问,但输出程序集的名称为"system,Version=1.0.0.0,Culture=neutral,PublicKeyToken=null".请尝试添加对"System,PublicKey=00000000000000000400000000000000"的引用,或者更改输出程序集的名称以使其匹配.c:Prog