varchar 转换为数据类型 numeric 时出现算术溢出错误.

问题描述

if(tiaoma.Length!=12){strdr="selectc.productname品种,b.batch批号,b.casecode大袋码,a.boxcode小袋码,b.impdate生产时间fromWlcLine_boxCodea,WlcLine_caseCodeb,WlcBs_Productcwherea.boxcode="+tiaoma+"andb.casecode=a.casecodeandc.productcode=b.productcode";}else{strdr="selectc.productname品种,b.batch批号,b.casecode大袋码,a.boxcode小袋码,b.impdate生产时间fromWlcLine_boxCodea,WlcLine_caseCodeb,WlcBs_Productcwhereb.casecode="+tiaoma+"andb.casecode=a.casecodeandc.productcode=b.productcode";}command.CommandText=strdr;//objcon.Open();//SqlDataReadersdr=command.ExecuteReader();//if(Convert.ToInt32(dr)>0){if(sdr.Read())//出错{Label2.Text="品种:"+sdr["品种"].ToString();//Label3.Text="批号:"+sdr["批号"].ToString();Label4.Text="生产时间:"+sdr["生产时间"].ToString();Label5.Text="大袋码:"+sdr["大袋码"].ToString();Label6.Text="小袋码:"+sdr["小袋码"].ToString();Label7.Text="纯度:"+sdr["品种"].ToString();}}else{Label1.Text="输入的数字身份码错误请查验后重新输入!"+dr+""+tiaoma;//}=========================================================简单的查询web页面:条码有10,12,16位,都是char(30)类型的,都在一个数据表中,12位和16位的都可以正常查询,10位的报错,哪位高人点拨点拨,实在是没招了。

解决方案

解决方案二:
目测前后两个sql语句根本是一模一样的不明白你到底纠结在哪里
解决方案三:
if(tiaoma.Length!=12)if(Convert.ToInt32(dr)>0)没有给出tiaoma和dr的定义,也无法知道你这都是在判断神马代码也不完整,描述也不清楚
解决方案四:
此外,执行sdr.Read()之前,不先判断里面是否有行就去读取吗?把sql语句提出来,放数据库里执行,看到底能不能查询到数据
解决方案五:
10位的条码输进去报错,12位,16位都可正确查询
解决方案六:
引用4楼hzy111的回复:

10位的条码输进去报错,12位,16位都可正确查询

一个是boxcode一个是casecode应该是某个长度的问题
解决方案七:
我感觉不像是代码的问题,哪位高人遇到过指点一下。相同的数据库,相同的代码,12、16位的条码查询可以,10位的条码查询失败!
解决方案八:
挂着明天结贴,如果没答案分给靠前的兄弟。
解决方案九:
引用6楼hzy111的回复:

我感觉不像是代码的问题,哪位高人遇到过指点一下。相同的数据库,相同的代码,12、16位的条码查询可以,10位的条码查询失败!

查询失败可能是因为你数据库里根本没有对应的10位条码数据你应该把sql语句放数据库里执行一下,先确定确实有数据,再纠结代码是否有问题而且我已经指出了你一个很严重的BUG:如果没有数据,也去执行read,然后直接报错,执行read之前根本没判断到底是否有无数据
解决方案十:
引用7楼hzy111的回复:

挂着明天结贴,如果没答案分给靠前的兄弟。

看5楼
解决方案十一:
if(tiaoma.Length!=12){strdr="selectc.productname品种,b.batch批号,b.casecode大袋码,a.boxcode小袋码,b.impdate生产时间fromWlcLine_boxCodea,WlcLine_caseCodeb,WlcBs_Productcwherea.boxcode=‘"+tiaoma+"’andb.casecode=a.casecodeandc.productcode=b.productcode";}else{strdr="selectc.productname品种,b.batch批号,b.casecode大袋码,a.boxcode小袋码,b.impdate生产时间fromWlcLine_boxCodea,WlcLine_caseCodeb,WlcBs_Productcwhereb.casecode=‘"+tiaoma+"’andb.casecode=a.casecodeandc.productcode=b.productcode";}

1、tiaoma用单引号引起来'"+tiaoma+"'2、Convert.ToInt32(dr)>0这是麽意思?!判断用dr!=null

时间: 2024-12-23 13:46:44

varchar 转换为数据类型 numeric 时出现算术溢出错误.的相关文章

将 numeric 转换为数据类型 numeric 时出现算术溢出错误。

问题描述 写作业时出现这问题,求大神解决一下 解决方案 解决方案二:可能你的数值超过了数据库定义的数据类型的长度.解决方案三:你看下字段的定义,有没有允许小数解决方案四:溢出的那个字段类型改成numeric(18,2)你可能是原始的numeric(18,0),并没有给他留小数点位

在将 varchar 值 'KC01003' 转换成数据类型 int 时失败。

问题描述 说明:执行当前Web请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.异常详细信息:System.Data.SqlClient.SqlException:在将varchar值'KC01003'转换成数据类型int时失败.源错误:行42://OleDbCommandcmd=newOleDbCommand(sql,conn);行43:SqlCommandcmd=newSqlCommand(sql,conn);行44:cmd.Execute

在将 varchar 值 'JAZZ' 转换成数据类型 int 时失败。

问题描述 在将 varchar 值 'JAZZ' 转换成数据类型 int 时失败. 代码如下: using System; using System.Data; using System.Configuration; using System.Collections; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.WebControls; using System.Web

xp系统下创建Image类型时出现内存溢出

问题描述 在xp系统下创建Image类型时出现内存溢出(System.OutOfMemoryException),在win7下同样的代码却没有问题.CardImage=Image.FromFile("D:\imagefile2/P115-AC-05-00303.tif");//在这里报错,OutOfMemoryExceptionCardGuid=FrameDimension.Page;CardImage.SelectActiveFrame(CardGuid,0);pictureBox1

android中Bundle作为方法参数的数据类型声明时的问题

问题描述 android中Bundle作为方法参数的数据类型声明时的问题 那么Bundle的数据类型是什么,是属于String类吗,归根结底是二进制数据101010101吗 解决方案 Bundle内部就是一个map,可以存储任何对象,key是String类型 解决方案二: ArrayMap mMap = null; 解决方案三: ArrayMap<String, Object> mMap = null; 解决方案四: 本质上所有的数据在计算机里都是二进制数据. 最简单的,一个整数,比如1,就是

在vs2010中用c++写代码时将textbox的文本转换为double类型时总是出错

问题描述 在vs2010中用c++写代码时将textbox的文本转换为double类型时总是出错 double du = double.Parse(textBox5->Text); double dlje = double.valueOf(textBox4->Text); double dljn = atof(textBox3->Text); 错误: 错误 2 error C2062: 意外的类型"double" 错误 5 error C2062: 意外的类型&quo

c++-CString类型(汉字)转换为wchar_t类型时显示的为乱码

问题描述 CString类型(汉字)转换为wchar_t类型时显示的为乱码 如题,从编辑框中提取汉字,取出为CString类型的,将此变量转换为wchar____t类型的变量,显示出来为乱码,但是当输入的为英文字母时,显示的就是正确的,不知道问题出现在哪里,求大神指点 ! 部分程序: 解决方案 最简单的将你的工程设置为Unicode编码的. 解决方案二: 如何从 wchar_t * 转换为其他字符串类型 解决方案三: _tsetlocale(LC_ALL, _T("chs")); //

sql server-sqlserver 查询条件为nvarchar类型缺报“转换成数据类型 int 时失败”

问题描述 sqlserver 查询条件为nvarchar类型缺报"转换成数据类型 int 时失败" 解决方案 OrderId这一列类型是不是int类型 解决方案二: 直接在外面select * from 表 where OrderId = ' 11db...'试试看,报错了没 解决方案三: 是不是视图内容定义本身有问题

[紧急求助]使用Axis2做成的Web Service上传文件,文件超过100M时,内存溢出,求解决办法

问题描述 使用Axis2做成的WebService上传文件,文件超过100M时,内存溢出,求解决办法JVM的缓存已经设置的足够大了,修改缓存的方法不可行请提供其他方法或者是Axis2对上传文件的大小有限制 解决方案 解决方案二:怎么没有人回复阿解决方案三:崩溃了,怎么没有人回复阿