所以我有一个显示用户用户名的标签。我已使用此值返回他们的 ID,然后将其附加到标签上。我使用执行标量来执行此操作,因为我不确定如何在标签上获取单个值。
这工作正常。然后我使用标签中的 ID 并将其放在另一个表中。我可以这样做两次,然后页面崩溃说......
“子查询返回的值超过 1 个。当子查询跟随 =、!=、<、<=、>、>= 或将子查询用作表达式时,这是不允许的。”
然而我不明白。我没有从页面上的第二个表格中提取任何内容。我不知道为什么会影响它。我觉得我什么都试过了。取出将 ID 发布到标签的行可以让页面运行,但我需要它。
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