浅析使用ADO.NET Recordset对象方法和属性

开发 后端
文章就ADO.NET Recordset对象做出详细的介绍,对它的Open方法、Save方法等等都列举了例子,希望对大家有帮助。

ADO.NET有很多值得学习的地方,这里我们主要介绍ADO.NET Recordset对象,包括介绍CursorLocation属性、UpdateBatch方法、Open方法等方面。CursorLocation属性:指定记录集的光标位置,有adUseServer和adUseClient两种。如果在connection对象连接前未指定游标,则必须在此设置。UpdateBatch方法:同时保存多条被更改的记录。Open方法:建立1个记录集。

#T#其中,Source即RecordSource参数可以是1个查询、存储过程名或表名等;或者1个Command对象变量名(此时要省略 ActiveConnection参数,即为空),ActiveConnection参数指明该记录集基于哪个Connection连接对象,这个连接对象必须是已建立的连接,当没有Connection对象时,该参数就直接指定一个ConnectionString连接串;Cursortype指明游标类型,Locktype指明记录锁定方式(记录集是否可修改/只读),Options是说Source参数中内容的类型,如表,存储过程等,与 Command对象的Commandtype类似。

使用ADO.NET Recordset对象Open方法,不要事先建立Connection和Command对象,也可打开数据源——其实,它们三个对象本来就是平行的嘛,如:

  1. Dim rst As New ADODB.Recordset  
  2. Private Sub Form_Load()  
  3. Const cnStr = "Provider=Microsoft.Jet.OLEDB.3.51;Persist Security Info=False;Data Source=C:\工商所收费系统\MyDatabase.mdb" 
  4. rst.Open "select * from Unitrecord", cnStr, adOpenDynamic, adLockOptimistic  
  5. End Sub 

只要这么几句,就打开一个记录集了。

ADO.NET Recordset对象Save方法:将记录集存为1个文件。本方法不会关闭记录集。该方法在记录集建立后才能使用。在第1次使用该方法存储记录集后,如果需要往同一文件存储同样的记录集,要省略文件名。我在使用ADO.NET Recordset对象时遇到1难题:竟没用来!我在声明段和Form_load事件中声明了对象变量,也设置了connectionstring,open属性,也给记录集对象赋予了Execute方法得到的记录,可是,记录集对象不可用,如:(红色代码为修改后的正确写法。)。

  1. Dim cn As ADODB.Connection  
  2. Dim cmd As ADODB.Command  
  3. Dim rst As ADODB.Recordset  
  4. rivate Sub Form_Load()  
  5. Set cn = New ADODB.Connection  
  6. cn.ConnectionString = "FILE NAME=C:\WINDOWS\Desktop\Savelink.UDL" 
  7. cn.CursorLocation=adUseClient 
  8. cn.Open  
  9. Set cmd = New ADODB.Command  
  10. Set cmd.ActiveConnection = cn 
  11. cmd.CommandText = "select * from sub1" 
  12. Set rst = New ADODB.Recordset  
  13. Set rst = cmd.Execute() ‘缺省情况下,记录集为只读,如果要修改记录,需要设定记录集的LockType属性,或在记录集对象的OPEN方法中一并设置。  
  14. rst.Open "sub1", cn, adOpenDynamic, adLockOptimistic  
  15. (注:第1个参数”sub1”也可采用1个command对象名,但那样的话要省略后面cn,如下:  
  16. rst.Open cmd, , adOpenDynamic, adLockOptimistic)  
  17. Label2.Caption = "本过程共" & rst.RecordCount & "步。"  
  18. rst . addnew  
  19. rst(0) = "搞试验"  
  20. rst(1) = "我的实验"  
  21. rst.Update ‘这句不能丢!设为adLockOptimistic对记录的修改不会自动进行保存!!!!  
  22. End Sub 


执行到label2.caption=…rst.RecordCount…和rst . addnew时就出错了,好象根本就没有rst似的。

责任编辑:田树 来源: 博客
相关推荐

2009-11-03 17:46:50

ADO.NET Sel

2009-11-04 12:45:33

ADO.NET Dat

2009-11-04 11:30:35

ADO.NET Dat

2009-11-13 10:10:07

2009-11-12 10:06:01

ADO.NET读取数据

2009-11-04 09:18:12

ADO.NET _Re

2009-09-14 13:37:25

LINQ ADO.NE

2009-11-11 09:48:08

ADO.NET Com

2009-11-04 10:48:02

ADO.NET Dat

2009-12-28 15:11:36

ADO.NET专家

2009-11-13 14:38:45

ADO.NET Dat

2009-11-11 10:55:10

ADO.NET对象

2011-05-20 17:05:59

ADO.NET

2009-11-04 10:35:42

ADO.NET Con

2009-11-12 15:00:03

ADO.NET实体数据

2009-07-06 10:43:51

ADO.NET

2009-10-29 13:34:01

ADO.NET对象

2009-12-31 16:04:39

ADO.NET技术

2009-11-12 09:36:32

ADO.NET Sql

2011-05-20 15:56:45

DataSetADO.NET
点赞
收藏

51CTO技术栈公众号