Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 SqlDataReader强制它一次读取一行_Sql Server 2008_Sqldatareader - Fatal编程技术网

Sql server 2008 SqlDataReader强制它一次读取一行

Sql server 2008 SqlDataReader强制它一次读取一行,sql-server-2008,sqldatareader,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() +

看来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();
}
在本例中,我正在更新下一行。
但是当I.Read()时,下一行SqlDataReader不会读取当前值。
我想这是为了提高速度。
有没有办法强制SqlDataReader一次读取一行。
我擅长脏读(必须是,因为我可能会更新该行)。

使用光标。 如果是简单的选择,光标将读取当前值。

使用group by进行选择,然后循环中的更新将更改组,这将不会反映在下一次获取中。

您试图解决的实际问题是什么?看起来你应该可以用一句话来表达。@SebastianMeine是的,我知道我可以用一句话来表达。“那”只是演示问题的简单代码。我的问题是我需要.Read()时的当前值。