如题。
谢谢大家帮忙了。

解决方案 »

  1.   

    " 不管数据库"是什么意思?你的意思是说对recordset的数据经行增删改操作,而不对数据库作更新吗?
      

  2.   

    对rs的更改,只要不执行rs.update就不会更新到数据库
    还可以用rs.clone方法复制一个副本,然后关闭源rs,对这个副本进行编辑...
      

  3.   

    哦,还可以用rs.save保存为持久记录集。可以反复重新打开这个记录集进行编辑...
      

  4.   


    Private Sub Form_Load()
    Dim rstList As New ADODB.Recordset
    Dim cnnstr As New ADODB.Connection
    Dim gprovider As String
    gprovider = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Test;Data Source=(local)"
    cnnstr.CursorLocation = adUseClient
    cnnstr.Open gprovider
    rstList.Open "select * from costfitting where item='" + Text1.Text + "'", cnnstr, adOpenKeyset, adLockBatchOptimistic
    Set DataGird1.DataSource = rstList
    End Sub
    如上代码所示,将rstlist对象的LockType属性设置为adLockBatchOptimistic,无论你对rstlist数据集作什么操作,都不会对数据库产生影响。只有当你最后使用rstlist.updateBatch的时候,才会将你对数据集的更新返回到数据库中去。
    其实你还可以将rstlist对象的LockType属性设置为adLockReadOnly,这样的话,及时你使用rstlist.updatebatch,也不会对数据库产生任何的影响。
      

  5.   

    其实这个 adLockBatchOptimistic (开放式批更新—用于批更新模式,与立即更新模式相对。)参数我在MSDN 帮助中有看到过的,但没经过老师指点一下我还真就不知道它是派什么用场的。哈哈,现在好了,又学到了一个非常有用的一招啊。谢谢哦。非常感谢。
      

  6.   

    如:
    dim rs as new adodb.recordset
      With RS
             With .Fields
                .Append "kk", adVarChar, 25
                .Append "hh", adVarChar, 25
                .Append "ff", adInteger
             End With
            .Open
        End With
    声明一个记录集,初始化下字段.
    RS.ADDNEW
      rs(0).value=..
      rs(1).value=..
      rs(2).value=..
    rs.update
    给记录集赋值,然后对该记录集赋值