0

我有一个“性别”的单选按钮列表。
选择是:无偏好、男性、女性。
我有一个搜索页面,用户可以通过这些选项进行搜索。我为 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:将 varchar 值“Male”转换为数据类型 int 时转换失败。

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

  Stack Trace: 

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

1 回答 1

0

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

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

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

于 2013-07-22T13:07:30.933 回答