根据从数据库读取的文本值检查 RadioButtonList 中的单选按钮

Check radio button in RadioButtonList based on text value read from database

在用户界面中,我有单选按钮列表,其中包含(一级、二级、三级)。另一方面,我有学生 table(ID,name,level,DOB,....) 将学生的级别保存为 varchar。 在页面加载中,我想根据从数据库读取的值填充 radioButtonList。 下面的代码是 运行 但它不检查从数据库中读取它的合适的单选按钮。

using (MySqlConnection SqlCon = new MySqlConnection(connStr))
                {
                    MySqlDataReader myReader = null;
                    using (MySqlCommand cmd = new MySqlCommand("SELECT S_Id, level FROM student where S_Id='" + 111 + "'"))
                    {
                        cmd.CommandType = CommandType.Text;
                        cmd.Connection = SqlCon;
                        SqlCon.Open();
                        myReader = cmd.ExecuteReader();
                        if (RadioButtonList1.Items.FindByValue(myReader.ToString()) != null)
                        {
                           // RadioButtonList1.Items.FindByValue(myReader.ToString()).Selected = true;
                            RadioButtonList1.SelectedValue = myReader.ToString();
                        }

                        SqlCon.Close();
                    }
                }

您必须遍历 DataReader 对象才能获取其值。尝试这样的事情:

using (MySqlConnection SqlCon = new MySqlConnection(connStr))
{
   MySqlDataReader myReader = null;
   using (MySqlCommand cmd = new MySqlCommand("SELECT S_Id, level FROM student where S_Id='" + 111 + "'"))
 {
  cmd.CommandType = CommandType.Text;
  cmd.Connection = SqlCon;
  SqlCon.Open();
  myReader = cmd.ExecuteReader();
  while (myReader.Read())
  {
   if (RadioButtonList1.Items.FindByValue(myReader["level"].ToString()) != null)
   {                           
     RadioButtonList1.SelectedValue = myReader["level"].ToString();
   }               
  }
  sqlCon.Close();
 }
}