I'm trying to display the username in login session in the master page, I got this error after i log in it says
Conversion failed when converting the nvarchar value to data type int.
Here's my MasterPage.cs
public partial class HRPortal_HRPortalMaster : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
if (Session["Username"] != null)
{
if (!IsPostBack)
{
GetName();
}
}
}
void GetName()
{
using (SqlConnection con = new SqlConnection(Helper.GetCon()))
{
string query = @"SELECT Username FROM Users WHERE UserID=@UserID";
con.Open();
using (SqlCommand cmd = new SqlCommand(query, con))
{
cmd.Parameters.AddWithValue("@UserID", Session["Username"].ToString());
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
ltName.Text = dr["Username"].ToString();
}
}
}
}
}
}
And here is my Login.cs
protected void btnLogin_Click(object sender, EventArgs e)
{
using (SqlConnection con = new SqlConnection(Helper.GetCon()))
{
con.Open();
string query = @"SELECT u.UserID, u.Username, u.Password, t.UserType FROM Users u INNER JOIN UserType t ON t.TypeID = u.TypeID WHERE Username=@Username AND Username=@Username";
using (SqlCommand cmd = new SqlCommand(query, con))
{
cmd.Parameters.AddWithValue("@Username", txtUsername.Text);
cmd.Parameters.AddWithValue("@Password", Helper.CreateSHAHash(txtPassword.Text));
//DataTable dt = new DataTable();
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.HasRows)
{
while (dr.Read())
{
string Utype;
Utype = dr["UserType"].ToString();
if (Utype == "Employee")
{
Session["Username"] = txtUsername.Text;
Response.Redirect("~/HrPortal/Home.aspx");
}
else
{
Session["Username"] = txtUsername.Text;
Response.Redirect("~/Administrator/Home.aspx");
}
}
}
else
{
error.Visible = true;
}
}
}
}
UserIDcolumn inUserstable? - Ullas