开发是一件需要非常小心的工作

本文讲述了在软件开发过程中遇到的一个关于GridView无法更新的问题及其解决过程。通过详细的Debug跟踪,发现了主键传入为空的问题所在,并进一步查明了由于数据类型转换不当导致的bug根源。

一个问题困扰多时,最终的结论,是因为自己不小心所致。

开发时测试已经OK的程序,交给用户使用也没有问题,过了几天,用户反映更新不了。把最新数据库导入开发本机测试,确实是GridView无法更新。

Debug用F11进行跟踪,程序完全顺利跑完,数据库中的数据即没有更新。

在sql Server的查询分析器执行更新存储过程,发现数据库的数据已经更新了。

检查到此步,说明存储过程没有问题,原因在程序中。

再一次Debug跟踪,这次非常仔细,每一步都查看完,最终发现主健在传入为空。

 

 

看到这些,为何程序刚开始是OK的呢?Insus.NET有点想不明白,进入程序打开类别查看更新事件,问题找出来,原来就在这里。

 

 

开发时,没有仔细,在第一次检查时,还是没有仔细进行Debug。程序刚开始是OK,原因为刚开始的记录主键小,还是符合TINYINT数据类型,自动生成大过TINYINT时,函数ConvertData就会把这个值转为空(null)了。

现在把代码改为传入INT数据类型,交给用户使用,程序正常了:

new Parameter("@ID", SqlDbType.Int, 4, ConvertData.ToInt(fqaId)),

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值