Dear @nedash,
c# is case sensitive. so, what ever you declare column name in query same name should be mention in eval.
in your gridview you mention "Pcode"
Text='<%#Eval("Pcode")%>'
but in your query you mention "pcode"
select
(select Temp_Users.pcode from Temp_Users where Temp_Users.Authority=@Authority) pcode
please change name "Pcode" to "pcode" in gridview
<asp:Label ID="Label6" runat="server" Text='<%#Eval("pcode")%>'></asp:Label>