Your return type is wrong.
To fix the errror change the returned type:
public List<string> EmployeeAccess2()
{
EmployeeAccess EA = new EmployeeAccess();
View_HCM VH = new View_HCM();
var x = from b in contxt.View_HCM
where b.EmpNo == EA.EmpNo
select b.EmailAddress;
return x.ToList();
}
And to show the email address in the gridview you can do like this
Define a class with a single named field:
public class EmailRecord
{
public string EmailAddress{ get; set; }
}
public List<EmailRecord> EmployeeAccess2()
{
EmployeeAccess EA = new EmployeeAccess();
View_HCM VH = new View_HCM();
var x = from b in contxt.View_HCM
where b.EmpNo == EA.EmpNo
select new EmailRecord
{
EmailAddress = b.EmailAddress
};
return x.ToList();
}
Bind your grid
gridEmployeeAccess.DataSource = TAClass.EmployeeAccess2(); gridEmployeeAccess.DataBind();
In aspx:
<asp:GridView ID="gridEmployeeAccess" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="EmailAddress" headertext="Email Address"/>
</Columns>
</asp:GridView>