0

我喜欢显示存储为 True/False 数据类型的数据库的值。我想将此数据呈现到下拉列表。

因此,当数据库中的值为“true”时,我喜欢在下拉列表中将其显示为“是”。如果数据库中的值为“false”,我喜欢在下拉列表中显示为“No”。

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,我在代码中比较它们以使下拉列表是或否。

但它不起作用。有没有人有简单的解决方案?

4

2 回答 2

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();
于 2013-06-19T07:45:00.393 回答
1

你只是错过了else条款吗?

if (Convert.ToInt32(ds.Tables[0].Rows[0]["admin"]) == 0) {
    DropDownList1.SelectedValue = "Yes";
} else {
    DropDownList1.SelectedValue = "No";
}
于 2013-06-19T07:51:45.543 回答