Ado.NET 系列quiz

6 篇文章 0 订阅
4 篇文章 0 订阅

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 11
    评论
评论 11
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值