我喜欢显示存储为True / False数据类型的数据库的值。 我想将此数据呈现给下拉列表。
因此,当数据库中的值为“true”时,我想在下拉列表中将其显示为“是”。 如果数据库中的值为“false”,我希望在下拉列表中显示为“否”。
DataSet ds = getDetails(username);
if (ds.Tables.Count > 0) {
TextBox1.Text = ds.Tables[0].Rows[0]["fName"].ToString();
TextBox2.Text = ds.Tables[0].Rows[0]["lName"].ToString();
TextBox3.Text = ds.Tables[0].Rows[0]["username"].ToString();
TextBox2.Text = ds.Tables[0].Rows[0]["password"].ToString();
if (Convert.ToInt32(ds.Tables[0].Rows[0]["admin"]) == 0) {
DropDownList1.SelectedValue = "Yes";
}
}
我试过的是,我在下拉列表中添加两个项目,一个“是”,值为“是”,另一个“否”,值为“否”。
在上面的代码中,我将true / false转换为int类型并将其与另一个int进行比较。 由于数据库存储了true = 0和false = -1,因此我在代码中将其与下拉列表中的“是”或“否”进行比较。
但它不起作用。 有没有人能够轻松解决这个问题?
答案 0 :(得分:1)
您的下拉列表应包含2个项目。
"-1"
,表示错误。"0"
,表示真实。 Note: the standard value are 0 for false and 1 for true, you might want to use those eventually
您当然可以将其文本设置为“true”/“false”或其他任何内容。
然后,您只需将SelectedValue设置为列的实际值。
DropDownList1.SelectedValue = ds.Tables[0].Rows[0]["admin"].ToString();
答案 1 :(得分:1)
您是否错过了else
条款?
if (Convert.ToInt32(ds.Tables[0].Rows[0]["admin"]) == 0) {
DropDownList1.SelectedValue = "Yes";
} else {
DropDownList1.SelectedValue = "No";
}