求助:expression 转换为数据类型 int时发生算术溢出错误
错误显示如下:
将 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?
- 类型转换错误?
- 字符转换错误
- 错误转换问题!
- 类型转换错误




