Итак, у меня есть метка, которая показывает имя пользователя. Я использовал это значение, чтобы вернуть их идентификатор, который затем прикрепил к метке. Я использовал скаляр выполнения для этого, потому что не знал, как еще получить одно значение на метке.
Это прекрасно работает. Затем я использую идентификатор с этикетки и помещаю его в другую таблицу. Я могу сделать это дважды, а затем страница вылетает со словами...
«Подзапрос вернул более 1 значения. Это не разрешено, если подзапрос следует за =,!=, ‹, ‹= , >, >= или когда подзапрос используется как выражение».
Однако я не понимаю. Я ничего не вытягиваю из второй таблицы на странице. Я не знаю, почему это могло повлиять на это. Я чувствую, что пробовал все. Удаление строки, которая отправляет идентификатор на метку, позволяет запускать страницу, но мне это нужно.
Label2.Text = User.Identity.Name
Dim connetionString As String
Dim cnn As SqlConnection
Dim cmd As SqlCommand
Dim sql As String
connetionString = "Data Source=(LocalDB)\v11.0;AttachDbFilename=|DataDirectory|\FYPMS_DB.mdf;Integrated Security=True"
sql = "SELECT SupID FROM Supervisor WHERE (Email = @Email)"
cnn = New SqlConnection(connetionString)
Try
cnn.Open()
cmd = New SqlCommand(sql, cnn)
cmd.Parameters.Add(New SqlParameter("@Email", User.Identity.Name))
Dim supid1 As Int32 = Convert.ToInt32(cmd.ExecuteScalar())
cmd.Dispose()
cnn.Close()
Label1.Text = supid1.ToString
Catch ex As Exception
MsgBox("Can not open connection ! ")
End Try
End Sub
Email
уникальным? - person Mephy   schedule 11.04.2015SELECT TOP 1 ....
, если это сработало, то я действительно подозреваю, что иногда ваш первоначальный запрос возвращает несколько строк - person har07   schedule 11.04.2015