关于网友提出的“手机绑定银行卡充值 NET中绑定值的问题”问题疑问,本网通过在网上对“手机绑定银行卡充值 NET中绑定值的问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:
问题:手机绑定银行卡充值 NET中绑定值的问题
描述: 问题: 在.NET中使用<%# Bind("DestPort")%>新增数据有问题。
具体环境:界面中使用的是GridView控件绑定数据(语法如上),先定义了一个ObjectDataSource来获取绑定的对象(对象是一个实体类),在GridView中使用ObjectDataSource作为DataSourceID. 这样在查询的时候是没有问题的,但是在更新数据的时候总是报“索引超出范围的错误”(出现错误的原因是:实体中的DestPort是一个int类型的属性,但是在界面中我不输入对应的绑定文本框,这个时候保存就会出现错误)。
个人推测:在Bind转换的时候就把Null强制转换成Int这样就出现错误了。
错误原因是我个人的推测,有没有哪位遇到过类似的问题,请各位高手发表一下自己的高见,小弟感激不尽。。。。。问题较急,小弟在线等。
解决方案1: 数据库是oracle 9以上吗?用decode()可以!
解决方案2: 加个判读呀,if null 就不转换,或转换为其他可接受类型
解决方案3: select isnull(sum(字段),0) as 字段 from 表 。。这就就行了。。不知道是否能满足
解决方案4: 我测试了一下,插入数据时,如果文本框对应的是实体属性值为int类型,不输入提交到数据库的值为0
我的FormView很简单
<>
OldValuesParameterFormatString="original_{0}" SelectMethod="GetUserList"
TypeName="Wish.WishForum.BLL.User.UserManager"
DataObjectTypeName="Wish.WishForum.Model.User" InsertMethod="InsertUser"
UpdateMethod="UpdateUser">
<>
DataSourceID="ObjectDataSource1">
Username:
'>
LoginTimes:
<>
Text='<%# Bind("LoginTimes") %>' />
<>
CommandName="Insert" Text="插入" />
<>
CausesValidation="False" CommandName="Cancel" Text="取消" />
'>
解决方案5: 你的页面代码怎么写的,新增数据用的是什么控件(FormView还是一堆文本框)?
解决方案6: 问题: 在.NET中使用 <%# Bind("DestPort")%>新增数据有问题。
1.请问是添加新数据还是更新数据
2.按更新数据我做过测试,如果文本框对应的是实体属性值为int类型,不输入提交到数据库的值为0
解决方案7: 在SQL
中用isnull 判断一下
select isnull(name,aa) as name from table 如果name为null就为aa
解决方案8: “DestPort是一个int类型的属性,但是在界面中我不输入对应的绑定文本框,这个时候保存就会出现错误”
这是肯定会抛异常的,因为空字符串不能转换成int类型的数据
所以要处理
以上介绍了“手机绑定银行卡充值 NET中绑定值的问题”的问题解答,希望对有需要的网友有所帮助。
本文网址链接:http://www.codes51.com/itwd/2810569.html