为什么用ado而不用ado.net 
用Dataset,DataAdapter,DataReader很好用

解决方案 »

  1.   

    对啊先using System.Data.SqlClient;然后用ADO.NET多爽啊。
      

  2.   

    ADODB.CursorTypeEnum.adOpenDynamic
    我觉得这个参数应该仔细研究一下
    我大约记得cursortype影响查询结果遍历方法。
      

  3.   

    扔掉 ADO , 学ADO.NET !!!
      

  4.   

    ADODB.Recordset rs=new ADODB.Recordset();rs.Open("select * from tb1","provider=SQLOLEDB;server=(local);database=test;uid=sa;pwd=",1,3);
      

  5.   

    另外关于move 全解:MoveFirst、MoveLast、MoveNext 和 MovePrevious 移动到指定 Recordset 对象中的第一个、最后一个、下一个或前一个记录并使该记录成为当前记录。 MoveFirst、MoveLast、MoveNext、MovePrevious (RDS) 移动到显示的 Recordset 中的第一个、最后一个、下一个或前一个记录。 Move 移动 Recordset 对象中当前记录的位置语法recordset.Move NumRecords, Start参数NumRecords    带符号长整型表达式,指定当前记录位置移动的记录数。Start    可选,字符串或变体型,用于计算书签。也可为下列 BookEnum 值之一:常量 说明 
    AdBookCurrent 默认。从当前记录开始。 
    AdBookFirst 从首记录开始。 
    AdBookLast 从尾记录开始。 
    说明所有 Recordset 对象都支持 Move 方法。如果 NumRecords 参数大于零,则当前记录位置将向前移动(向记录集的末尾)。如果 NumRecords 小于零,则当前记录位置向后移动(向记录集的开始)。如果 Move 调用将当前记录位置移动到首记录之前,则 ADO 将当前记录放置在记录集(BOF 为 True)的首记录之前。在 BOF 属性已经为 True 时试图向后移动将产生错误。如果 Move 调用将当前记录位置移动到尾记录之后,则 ADO 将当前记录放置在记录集(EOF 为 True)的尾记录之后。在 EOF 属性已经为 True 时试图向前移动将产生错误。从空的 Recordset 对象调用 Move 方法将产生错误。如果传送 Start 参数,则移动相对于该书签的记录(假定 Recordset 对象支持书签)。如果没有指定,则移动相对于当前记录。如果使用 CacheSize 属性在本地缓存来自提供者的记录,则在传送将当前记录位置移动到当前缓存的记录组之外的 NumRecords 参数时, ADO 将不得不从目标记录开始检索新的记录组。CacheSize 属性决定新检索记录组的大小,而目标记录是检索到的第一个记录。如果 Recordset 对象是仅向前的,则用户仍然可以传送小于零的 NumRecords 参数(只要目标在已缓存记录的当前集合中)。如果 Move 调用将当前记录位置移动到第一个已缓存记录的前一个记录,将产生错误。因此可使用记录缓存,它在支持仅向前滚动的提供者上支持完全滚动。由于缓存的记录将加载到内存,因此应避免不必要地缓存过多记录。即使仅向前 Recordset 对象支持这种方式的向后移动,在任何仅向前的 Recordset 对象上调用 MovePrevious 方法仍将产生错误。