我是 ADO.net 的新手,我需要从 DB 中检索一组行,然后逐一迭代并有条件地将它们发送到可能UPDATE
或DELETE
从 DB 接收行的某些对象。从SqlDataReader
文档中我没有正确理解它是如何工作的(它是从数据库中读取所有行还是仅读取其中一些行或一个接一个?)来自MSDN:
结果在查询执行时返回,并存储在客户端的网络缓冲区中,直到您使用 DataReader 的 Read 方法请求它们。
- 什么时候返回结果?期间
command.ExecuteReader()
还是期间reader.Read()
?Result 的内容是什么 - 所有数据还是部分数据? - 什么是本地机器上的“网络缓冲区”?
- 从哪里
Read
读取数据?来自数据库还是来自缓存?
是否会影响数据修改(UPDATE
或DELETE
)从下一个数据的数据库中检索?代码存根:
using (SqlConnection connection = new SqlConnection(connectionString))
using (SqlCommand command = new SqlCommand(queryString, connection))
{
connection.Open();
using (SqlDataReader reader = command.ExecuteReader());
{
while (reader.Read())
{
//ReadSingleRow...
//Perform some checks and if TRUE send to a manager obeject whcih perform UPDATE or DELETE on this record
}
}
}
或更好地SqlDataAdapter
与DataSet
或DataTable
在这里一起使用?