对于每个语句不能正常工作

use*_*164 0 vb.net ado.net

我试图找到包含某个参考编号的每条记录,然后为每条记录将其分配给一个会话,以便将其添加到PDF中.当我运行下面的代码时,它只执行1个参考号,即使可能有3条记录需要从中获取数据.知道为什么它没有为每条记录提供它吗?TIA

      cmd = New SqlCommand
            cmd.Connection = Con
            cmd.CommandText = "SELECT [Physician First Name], [Physician Last Name], [Recipient Primary Business Street Address Line 1], [Recipient City], [Recipient State], [Recipient Zip Code] FROM tblData WHERE ReferenceNumber = @ReferenceNumber"
            cmd.Parameters.Add(New SqlParameter("@ReferenceNumber", (ReferenceTextBox.Text)))

    Dim reader As SqlDataReader = cmd.ExecuteReader()

    For Each NPIlookup In reader

                If (reader.Read()) Then

                    Session("DoctorFirstName") = reader(0)


                End If
                Session("PDF") &= Session("DoctorFirstName")

            Next
Run Code Online (Sandbox Code Playgroud)

Ari*_*yck 5

reader.Read()你的for each循环前进读者到下一条记录,跳过你感兴趣的人.

您不应该在for each循环期间修改集合(在本例中为读者).

  • 这是正确的答案.但是我认为*修改集合*应该被读取*推进迭代器,同时已经使用"For Each"*或类似的东西迭代序列,因为实际上没有任何修改. (2认同)