有一下代码,你可以copy 到本地的form中测试一下
Dim dt As DataTable Dim dv As DataView
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim drv As DataRowView = dv(0)
drv.Delete() MsgBox(dt.Rows.Count) End Sub
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load dt = New DataTable
dt.Columns.Add("col1", GetType(String)) dt.Columns.Add("col2", GetType(String))
Dim dr As DataRow For i As Integer = 0 To 9 dr = dt.NewRow dr(0) = i.ToString() dr(1) = i.ToString() dt.Rows.Add(dr) Next dt.AcceptChanges() dv = New DataView(dt)
End Sub
你会发现,点击按钮的时候一直显示10,直到你点了11下后报错。
问题1.,为什么MsgBox(dt.Rows.Count) 总是返回10
问题2. 只要修改一行代码,就可以显示真实的记录数,你知道为什么吗?
问题其实很简单,你发现答案后就会对ADO.NET 的数据缓存机制有进一步认识。
Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved. 闵涛 E_mail:admin@mintao.net(欢迎提供学习资源)
鄂公网安备 42011102001154号
站长:MinTao ICP备案号:鄂ICP备11006601号-18