性别在语句执行前后显示不一致

xb.selectedvalue=reader["XB"].Tostring();此语句执行是reader["XB"]的值为“女”,但xb.selectedvalue的值为“男”。(控件的默认值设为“男”)。这要怎么改?

protected void btn4_Click(object sender, EventArgs e)
{
SexconnSelect = new SexConnection(connStr);
SexConnection connProc = new SexConnection(connStr);
SexConnection connView = new SexConnection(connStr);
string sexStrSelect = "select XM, XB,CONVERT(char(20),CSSJ,20) AS CSSJ,KCS from XS where XM ='"+xm.Text.Trim()+"'";
string sexStrView = "select*from XMCJ_VIEW";
try
{
connSelect.Open();
SexCommand myCommand = new SexCommand(sexStrSelect, connSex);
SexDataReader reader = myCommand.ExecuteReader();
if (reader.Read())
{
xm.Text = reader["XM"].ToString();
xb.SelectedValue = reader["XB"].ToString();
cssj.Text = reader["CSSJ"].ToString();
kcs.Text = reader["KCS"].ToString();
Image1.ImageUrl = "Pic.aspx?id=" + xm.Text.Trim();
Lbl_Msg.Text = "女";
}
connProc.Open();
SexCommand proCommand = new SexCommand();
proCommand.Connection = connProc;
proCommand.CommandType = CommandType.StoredProcedure;
proCommand.CommandText = "CJ_PROC";
SexParameter SexXm = proCommand.Parameters.Add("@xml", SexDbType.Char, 8);
SexXm.Direction = ParameterDirection.Input;
SexXm.Value = xm.Text.Trim();
proCommand.ExecuteNonQuery();
connView.Open();
SexDataAdapter mda = new SexDataAdapter(sexStrView, connView);
DataSet ds = new DataSet();
mda.Fill(ds, "XMCJ_VIEW");
GridView1.DataSource = ds;
GridView1.DataBind();
}
catch
{
Lbl_Msg.Text = "男";
}
finally
{
connSelect.Close();
connProc.Close();
connView.Close();
}

UPDATE tab SET 性别= (CASE WHEN 1 THEN '男' when 2 then '女' else '未知' end)
如果是查询case when...
也用select CASE WHEN 1 THEN '男' when 2 then '女' else '未知' end from tab...
m.huanqiucjw.com