我有一个“性别”的单选按钮列表
选择是:没有偏好,男性,女性
我有一个搜索页面,用户可以通过这些选项进行搜索。我为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.]
答案 0 :(得分:0)
您正在使用选定的值使用SelectedItem.Text。
if (rdogender.SelectedItem.Text == "Male")
{
Session["Gender"] = ((string)"Male");
}
if (rdogender.SelectedItem.Text == "Female")
{
Session["Gender"] = "Female";
}
对于男性,你检查selecteditem.text,对于女性你检查SelectedValue。