Search code examples
c#asp.netgridviewsqldatareaderexecutereader

Change column value using condition after gridview databind


I am displaying data in Gridview from three tables using join. But I want to change a field using condition.

I kept my "status" as "1" and "0". For "1" I want to display "Selected" and for "0" I want to display "Rejected".

Below is my code:

void databind()
{
    string CS = ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
    using (SqlConnection con = new SqlConnection(CS))
    {
        con.Open();
        SqlCommand cmd = new SqlCommand("select a.applicant_id as 'Applicant ID',a.applicant_name as 'Name',a.status as 'Status',b.staff_Name as 'Reviewed by',c.course_name as 'Course' from tblApplicant a left outer join tblStaff b on a.staff_id=b.staff_id left outer join tblCourse c on a.course_id=c.course_id", con);
        SqlDataReader dr = cmd.ExecuteReader();
        GridView1.DataSource = dr;
        GridView1.DataBind();
    }
}

Solution

  • use this line with case when clause

     SqlCommand cmd = new SqlCommand("select a.applicant_id as 'Applicant ID',a.applicant_name as 'Name',case when a.status=0 then 'Rejected' else 'Selected' end as 'Status',b.staff_Name as 'Reviewed by',c.course_name as 'Course' from tblApplicant a left outer join tblStaff b on a.staff_id=b.staff_id left outer join tblCourse c on a.course_id=c.course_id", con);