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;
}
}
}
}