Ado.NET 系列quiz

王朝c#·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

有一下代码,你可以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 的数据缓存机制有进一步认识。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航