使用单选按钮从值搜索数据库时出错

时间:2013-07-22 12:48:35

标签: asp.net sql-server-2005 radiobuttonlist

我有一个“性别”的单选按钮列表 选择是:没有偏好,男性,女性 我有一个搜索页面,用户可以通过这些选项进行搜索。我为Gender创建了一个会话变量Session["Gender"]。数据库表中的属性是GenderType,它是varchar(8)。 在Asp方面,这是从搜索页面中获取值的代码:

  if (rdogender.SelectedItem.Text == "Male")
  {
      Session["Gender"] = ((string)"Male");
  }
  if (rdogender.SelectedValue == "Female")
  {
      Session["Gender"] = "Female"; 
  }

当我搜索时,我一直在接受以下错误。我也尝试了以下内容:

 Session["Gender"] = ((String)rdogender.SelectedValue);
 Session["Specialty"] = (string)ddlSpecialty.SelectedValue;
 Session["Gender"] = ((String)rdogender.SelectedValue);

无论如何编码,我仍然会收到以下错误。有谁知道如何解决这个问题?

  

将varchar值'Male'转换为数据时转换失败   输入int。描述:期间发生了未处理的异常   执行当前的Web请求。请查看堆栈跟踪   有关错误及其来源的更多信息   码。

     

异常详细信息:System.Data.SqlClient.SqlException:Conversion   将varchar值'Male'转换为数据类型int时失败。

     

源错误:在此期间生成了未处理的异常   执行当前的Web请求。有关原产地的信息   可以使用异常来识别异常的位置   堆栈跟踪下面。

  Stack Trace: 

  [SqlException (0x80131904): Conversion failed when converting the                varchar value 'Male' to data type int.]

1 个答案:

答案 0 :(得分:0)

您正在使用选定的值使用SelectedItem.Text。

  if (rdogender.SelectedItem.Text == "Male")
  {
      Session["Gender"] = ((string)"Male");
  }
  if (rdogender.SelectedItem.Text == "Female")
  {
      Session["Gender"] = "Female"; 
  }

对于男性,你检查selecteditem.text,对于女性你检查SelectedValue。