我目前正在将依赖ADO的Vb6程序重新编写为带有ADO.NET的C#。我在原始代码中遇到了类似以下内容的几个地方:

Dim rs As New Recordset
rs.CacheSize = 500
Call rs.Open(sSql, cnMeta, adOpenForwardOnly, adLockReadOnly)


在Ado.Net中是否有与ADO.RecordSet.CacheSize等效的(甚至是等效的需求)? (是否要大写?)我很高兴接受“ ADO.NET”为您解决这个问题(事实上,我非常高兴接受)。我的问题是,在迁移之前我没有ADO的经验,所以我不确定是否会遗漏一些细微之处。

我是否正确理解adOpenForwardOnly和adLockReadOnly是使RecordSet像SqlDataReader一样[/ EDIT]的[EDIT]方法?如果是这样,那么我唯一真正的问题是我是否需要增加Ado.Net缓存或默认情况下是否可以处理它。

如果这是一个重复的问题,我真的很抱歉。我似乎无法在S.O上找到它。还是msdn。

最佳答案

CacheSize属性控制记录集读入其内部缓冲区的记录数量。 ADO.NET中没有等效属性,因为它的缓冲方式不同。因此,您可以将其省略。


  我是否正确理解
  adOpenForwardOnly和adLockReadOnly
  是SqlDataReader的默认值?


是。嗯,这不是默认值,而是数据读取器工作的唯一方式。对于使用RecordSet的任何其他方式,您可以使用其他类,例如DataSetSqlDataAdapter

关于c# - Ado.Net RecordSet成员等效吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4027459/

10-12 21:35