I have error using this code when the value stored in database in column "Status" is null.
If the value of column "Status" is null in the gridview I don't have "OK/KO" value in drop down list "t_Status" but only "KO" value.
In the switch status code isn't it enough to have a default value for solved the problem null in column "Status"?
Thanks for help
string Status = DataBinder.Eval(e.Row.DataItem, "Status").ToString();
DropDownList t_Status = (DropDownList)e.Row.FindControl("ddl_Status");
 
    string sql = "SELECT Status FROM `table_1` t JOIN `table_2` p " +
        "ON t.user = p.user WHERE t.user = ? " +
        "AND t.category = ?; ";
 
    string conString =
        ConfigurationManager.ConnectionStrings["cn"].ConnectionString;
 
    using (MySqlConnection con =
        new MySqlConnection(conString))
    {
        using (MySqlDataAdapter sda =
            new MySqlDataAdapter(sql, con))
        {
            sda.SelectCommand.Parameters.AddWithValue("param1", x.ToString().ToUpper());
            sda.SelectCommand.Parameters.AddWithValue("param2", y.ToString());
 
            using (DataTable dt =
                new DataTable())
            {
                sda.Fill(dt);
                t_Status.DataSource = dt;
                t_Status.DataTextField = "Status";
                t_Status.DataValueField = "Status";
                t_Status.DataBind();
 
                // Add Default item.
                t_Status.Items.Insert(0, new ListItem("[ === === === ]", ""));
                switch (Status)
                {
                    case "OK":
                        // Add KO item.
                        t_Status.Items.Insert(1, new ListItem("KO", "KO"));
                        break;
 
                    case "KO":
                        // Add OK item.
                        t_Status.Items.Insert(1, new ListItem("OK", "OK"));
                        break;
 
                    default:
                        // Add OK and KO items.
                        t_Status.Items.Insert(1, new ListItem("OK", "OK"));
                        t_Status.Items.Insert(2, new ListItem("KO", "KO"));
                        break;
                }
 
                t_Status.ClearSelection();
                if (t_Status.Items.FindByValue(Status) != null)
                {
                    t_Status.Items.FindByValue(Status).Selected = true;
                }
            }
        }
    }