[原创].Net中绑定到DataView的问题

为了使某些Web控件可以显示DataGrid中当前选定行的数据,我用了控件的DataBindings属性进行设置,把控件绑定到DataView上。然后在DataGrid的SelectedIndexChanged事件中增加下述代码:
        Dim index As Integer
        Dim key As String
        index = DataGrid1.SelectedIndex
        key = DataGrid1.DataKeys(index).ToString()
        DataView1.RowFilter = DataGrid1.DataKeyField & " = '" & key & "'"
        Label1.DataBind()
        Label2.DataBind()
        Label3.DataBind()
编译执行,结果莫名奇妙地产生“索引0不是非负数且小于总行数”的错误,如下。
er1.jpg
于是搜了一下百度和Google,但没有找到关于这个问题的产生原因和解决方法的相关文章。没办法,只好自己再研究研究。在一番尝试之后,发现问题出在DataView上面,试着在这段代码中加入把DataGrid绑定到DataView的代码,结果DataGrid显示为空。也就说明DataView的内容变空了,而DataView的Table属性是DataSet的数据表,也就是说问题的源头在DataSet上。然后试着在代码中加入SqlDataAdapter1.Fill(DataSet1)这条语句,结果问题解决了。于是猜测在SelectedIndexChanged事件中,DataSet被自动清空了,我的DataSet是放在当前网页上的,至于为什么会被清空就不清楚了。总之,这个莫名其妙的报错的原因就是数据为空,重新用SqlDataAdapter刷新一下DataSet就行了。如果有谁知道为什么DataSet在事件中被清空,请告诉我,我最近刚接触VB.Net的Web编程。05.gif

转载于:https://www.cnblogs.com/kidd2829/archive/2005/12/07/292629.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值