CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

求助:expression 转换为数据类型 int时发生算术溢出错误

楼主ilovediannao2002()2006-03-06 10:29:48 在 .NET技术 / ASP.NET 提问

错误显示如下:  
  将   expression   转换为数据类型   int   时发生算术溢出错误。    
  说明:   执行当前   Web   请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。    
   
  异常详细信息:   System.Data.SqlClient.SqlException:   将   expression   转换为数据类型   int   时发生算术溢出错误。  
   
  源错误:    
   
   
  行   554: if(this.ExcuteProcedureHander!=null)  
  行   555: ExcuteProcedureHander(sqlCmd);  
  行   556: sqlCmd.ExecuteNonQuery();  
  行   557:  
  行   558: return   sqlCmd.Parameters   ;  
     
   
  源文件:   e:\我的项目\kz_src\csharp\db.cs         行:   556    
   
  堆栈跟踪:    
   
   
  [SqlException:   将   expression   转换为数据类型   int   时发生算术溢出错误。]  
        System.Data.SqlClient.SqlCommand.ExecuteReader(CommandBehavior   cmdBehavior,   RunBehavior   runBehavior,   Boolean   returnStream)  
        System.Data.SqlClient.SqlCommand.ExecuteNonQuery()  
        Hospital.CSharp.DataBase.ExecuteProcedure(String   pName)   in   e:\我的项目\kz_src\csharp\db.cs:556  
        Hospital.DataManage.Client_Infor_Second.Page_Load(Object   sender,   EventArgs   e)   in   e:\我的项目\kz_src\datamanage\client_infor_second.aspx.cs:123  
        System.Web.UI.Control.OnLoad(EventArgs   e)  
        System.Web.UI.Control.LoadRecursive()  
        System.Web.UI.Page.ProcessRequestMain()  
   
     
  问题点数:100、回复次数:12Top

1 楼ilovediannao2002()回复于 2006-03-06 10:36:52 得分 0

大家帮帮忙!  
  ]Top

2 楼gsk99(ZJUT)回复于 2006-03-06 10:50:08 得分 30

sql语句贴出来Top

3 楼ilovediannao2002()回复于 2006-03-06 10:55:08 得分 0

this.db.ExcuteProcedureHander=new   ParametersHandler(this.FillAddParameters);  
  SqlParameterCollection   spc=   db.ExecuteProcedure("customer_info_Insert");  
   
  存储过程:customer_info_Insert  
   
  -输入参数:  
  -- @CUR_USER_NO in 执行该存储过程的用户编号  
  -- @name                   varchar(10) 名称  
  -- @sex   varchar(1) 性别:0-男   1-女  
  -- @birthday datetime 出生日  
  -- @certfct_type   varchar(1) 证件类型:0-身份证   1-军官证  
  -- @certfct_no   varchar(30) 证件号码  
  -- @marital_tatus   varchar(1) 婚姻状况  
  -- @telephone   varchar(15) 电话  
  -- @mobile   varchar(15) 手机  
  -- @email   varchar(40) email  
  -- @address varchar(100) 通讯地址  
  -- @zip   varchar(6) 邮编  
  -- @exam_date   datetime 体检日期   新加   by:葛振   Date:2005-11-14  
  -- @remark   varchar(200)备注       新加   by:葛振   Date:2005-11-09  
  -- @seller   varchar(10) 业务员   修改   by:葛振   Date:2005-11-11  
  -- @remark   varchar(500)备注       修改   by:葛振   Date:2005-11-11  
  -- @corp_no   int 团体编号  
  -- @corp_group_no     int 团体分组编号  
  -- @profession           varchar(2) 职业编号:00-销售/市场/广告   01-财会/金融  
  -- @income                   decimal(15,2) 收入(元/月)  
  -- @likes                     varchar(100) 爱好  
  -- @card_no                 int 会员卡号  
  -- @temp_card_no       int 临时卡号(内部卡)  
  -- @times int 体检次数,初始化为0  
  -- @total_mark           int 消费积分,初始化为0  
  -- @regst_date           datetime 登记时间  
  -- @pre_pay_amt numeric(15,2) 体检预收费用  
  -- @pre_pay_date datetime 预收费用时间  
  --输出参数:  
  -- @RET_VALUE INT 执行该存储过程的返回值  
  -- @MESSAGE VARCHAR(80) 执行该存储过程发生错误,返回错误信息  
  -- @customer_no   int 插入的新的客户编号(工号)  
  --  
  --V1.0  
  --  
  --------------------------------------------------------------------------  
  if   exists   (select   *   from   dbo.sysobjects    
  where   id   =   object_id(N'customer_info_Insert')   and   OBJECTPROPERTY(id,   N'IsProcedure')   =   1)  
  drop   procedure   customer_info_Insert  
  go  
   
  CREATE   PROCEDURE   customer_info_Insert  
  @RET_VALUE INT=0   OUTPUT,  
  @MESSAGE VARCHAR(80)=NULL OUTPUT,  
  @CUR_USER_NO int=0 ,  
  @customer_no   int=null OUTPUT,  
  @name                   varchar(10)=null ,  
  @sex   varchar(1)=null ,  
  @birthday datetime=null ,  
  @certfct_type   varchar(1)=null ,  
  @certfct_no   varchar(30)=null ,  
  @marital_tatus   varchar(1)=null ,  
  @telephone   varchar(15)=null ,  
  @mobile   varchar(15)=null ,  
  @email   varchar(40)=null ,  
  @address varchar(100)=null ,  
  @zip   varchar(6)=null ,  
  -- @worker   varchar(10)=null ,--新加   by:葛振   Date:2005-11-09  
  --     @remark   varchar(200)=null ,--新加   by:葛振   Date:2005-11-09  
  @seller   varchar(10)=null ,--修改   by:葛振   Date:2005-11-11  
  -- @exam_date     datetime=null                       ,--新加   by:葛振   Date:2005-11-14  
  @remark   varchar(500)=null ,--修改   by:葛振   Date:2005-11-11  
  @corp_no   int=null ,  
                  @corp_group_no     int=null                   ,  
  @profession           varchar(2)=null                   ,  
                  @income                   decimal(15,2)=null             ,  
                  @likes                     varchar(100)=null               ,  
                  @card_no                 int=null                   ,  
  @temp_card_no       int=null                 ,  
  @times int=0 ,  
                  @total_mark           int=0 ,  
                  @regst_date           datetime=null       ,  
  @pre_pay_amt numeric(15,2)=null,  
  @pre_pay_date datetime=null  
   
  WITH   ENCRYPTION  
   
  AS  
  --处理默认团体分组问题  
  begin   transaction  
  if   (@regst_date   is   null)   set   @regst_date   =   getdate()  
  declare   @password   varchar(12)  
  exec   GetPassword   59,6,@password   output  
  if   (@corp_no   is   not   null   and   @corp_group_no   is   null)  
  begin  
  select   @corp_group_no=corp_group_no   from   corp_group_info   where   corp_no=@corp_no   and   corp_group_name=  
  (select   ci.corp_name+'(默认)'   from   corp_info   ci   where   ci.corp_no=@corp_no)  
  if(   @corp_group_no   is   null)   set   @corp_no=null  
  end  
  insert   into   customer_info  
  values (  
  @name ,  
  @sex ,  
  @birthday ,  
  @certfct_type ,  
  @certfct_no ,  
  @marital_tatus ,  
  @telephone ,  
  @mobile ,  
  @email ,  
  @address ,  
  @zip ,  
  @corp_no ,  
                                                                  @corp_group_no ,  
  @profession ,  
  @income ,  
  @likes ,  
  @card_no ,  
  @temp_card_no ,  
  0 ,  
                                                                  0                           ,  
                                                                  @regst_date ,  
  @pre_pay_amt ,  
  @pre_pay_date ,  
  @password ,  
  -- @worker ,--新加   by:葛振   Date:2005-11-09  
  @seller ,--修改   by:葛振   Date:2005-11-11  
  -- @exam_date ,--新加   by:葛振   Date:2005-11-14  
  @remark   --新加   by:葛振   Date:2005-11-09  
  )  
  SET   @RET_VALUE=0  
  SELECT   @customer_no=@@IDENTITY  
   
  DECLARE   @LOG_INFO   varchar(1000)  
   
  set   @LOG_INFO='添加客户:'   +   @name+'编号:'+str(@customer_no)  
  EXECUTE   opr_log_insert   @CUR_USER_NO,  
  @LOG_INFO  
  commit   transaction  
  return   0  
  go  
   
   
  Top

4 楼gsk99(ZJUT)回复于 2006-03-06 10:59:00 得分 0

sql语句好复杂啊,不好意思,我无能为力Top

5 楼ilovediannao2002()回复于 2006-03-06 11:02:08 得分 0

插入数据时,少量的数据不会有问题,但是大量的数据就出现问题了!哪位能不能帮帮我!Top

6 楼ilovediannao2002()回复于 2006-03-06 11:32:09 得分 0

怎么没人帮我啊!Top

7 楼ilovediannao2002()回复于 2006-03-06 14:43:50 得分 0

我都有点绝望了!有人没有!Top

8 楼njuzgj(罐子)回复于 2006-03-06 14:50:18 得分 0

MARKTop

9 楼ilovediannao2002()回复于 2006-03-06 15:39:30 得分 0

小马哥?Top

10 楼gsk99(ZJUT)回复于 2006-03-06 15:58:51 得分 20

帮顶Top

11 楼yuzhantao(和女朋友一起去养狗)回复于 2006-03-06 16:20:15 得分 50

先判断是数据库还是程序的问题  
   
  下断点,看一下传入存储过程的每个int类型参数是否都在int范围以内。  
  怀疑你有可能把很大的用户ID什么的作为int类型保存了,比如身份证号码Top

12 楼ilovediannao2002()回复于 2006-03-06 17:55:58 得分 0

这是我的存储过程中设定的三个返回值:  
  sp=sc.Parameters.Add("@RET_VALUE" ,SqlDbType.Int   ,4 );//存储过程执行以后的返回值!  
  sp.Direction=ParameterDirection.InputOutput;  
  sp=sc.Parameters.Add("@MESSAGE" ,SqlDbType.VarChar ,80);//存储过程执行以后的返回的错误信息!  
  sp.Direction=ParameterDirection.InputOutput;  
  sp=sc.Parameters.Add("@CUR_USER_NO" ,SqlDbType.Int ,4);//标识执行该操作的用户名,用来填写系统的日志!  
  LoginUser   theUser=(LoginUser)(Page.Session["CUR_USER"]);  
  sp.Value=theUser.UserNo;Top

相关问题

  • 什么错误? "将 expression 转换为数据类型 datetime 时发生算术溢出错误"
  • select (192*255*255*255)+(168*255*255)+(0*255)+42将 expression 转换为数据类型 int 时发生算术溢出错误。
  • 调用DB2自定义函数时报算术溢出错误,怎么回事啊?!
  • 一个基于Sybase的上传与下载的麻烦问题,出现错误:算术运算导致溢出
  • 求教,numeric(9, 2) 转换成 numeric(9, 3) 时发生溢出错误?
  • 新建数据窗口对象时数据转换溢出错误?这是不是Powerbuilder 的bug?
  • 类型转换错误?
  • 字符转换错误
  • 错误转换问题!
  • 类型转换错误

关键词

  • 转换
  • 数据
  • 存储过程
  • csharp
  • 执行
  • 项目
  • db
  • 算术溢出
  • excuteprocedurehander
  • 错误

得分解答快速导航

  • 帖主:ilovediannao2002
  • gsk99
  • gsk99
  • yuzhantao

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo