SqlDataReader强制它一次读取一行

时间:2013-02-02 19:56:15

标签: sql-server-2008 sqldatareader

看来SqlDataReader预读

while (rdrMainLoop.Read())
{
    sID = rdrMainLoop.GetInt32(0);
    nearDupID = rdrMainLoop.IsDBNull(2) ? 0 : rdrMainLoop.GetInt32(2);
    sqlCmdProducer.CommandText = "update [docSVsys] set [FTSnearDupID] = '" + sID.ToString() + "' where [sID] = '" + (sID + 1).ToString() + "';";
    sqlCmdProducer.ExecuteNonQuery();
}

在这个例子中,我正在更新下一行 但是当我.Read()时,下一行SqlDataReader没有读取当前值 我认为它在速度上提前批量 有没有办法强制SqlDataReader一次读取一行 我很擅长阅读(我必须更新该行)。

1 个答案:

答案 0 :(得分:1)

使用了光标。 光标读取当前值,如果它是一个简单的选择 带有分组依据的选择和循环中的更新会在那时更改组,这将不会反映在接下来的提取中。