将下拉列表选择的值设置为数据库中的值

时间:2014-08-06 12:47:37

标签: c# sql asp.net

我尝试做的是将下拉列表设置为编辑条目时数据库中的值。我可以将下拉列表的值保存到数据库中,但我似乎无法在浏览器中设置控件来显示此信息。 I.E.选择的" 4"保存到数据库以输入ABC,但当我返回此条目再次编辑时,这不是选定的值 - 它是下拉列表中的第一项。

这是我的代码,用于在编辑条目时设置下拉列表的选定值,但它不起作用:

using (SqlConnection cn = new SqlConnection(ConfigurationManager.ConnectionStrings["AbleCommerce"].ToString()))
{
     cn.Open();
     SqlCommand cmd = new SqlCommand(selectQuery, cn);
     cmd.Parameters.Add(new SqlParameter("@CustomerID", custIDHidden.Value));

      using (IDataReader reader = cmd.ExecuteReader())
      {
          if (reader.Read())
          { 
              TaxExemptDDL.SelectedValue = reader["TaxExemptFile"].ToString();


           }
       }
        cn.Close();
}

控件本身(值是存储在数据库中的值,而不是文本):

<asp:DropDownList ID="TaxExemptDDL" style="width:165px;" runat="server">
  <asp:ListItem Text="True" Value="1" />
  <asp:ListItem Text="False" Value="0" />
</asp:DropDownList>

我是以错误的方式来做这件事的吗?这似乎很简单,但我似乎错了...

2 个答案:

答案 0 :(得分:0)

你不能像那样设置SelectedValue。

ListItem itemToSelect = TaxExemptDDL.Items.FindByValue(reader["TaxExemptFile"].ToString());
if (itemToSelect != null)
{
TaxExemptDDL.SelectedIndex = TaxExemptDDL.Items.IndexOf(itemToSelect);
}

为什么没有人在此处发布代码更容易?像其他网站一样,你可以把东西放在[Code]标签之间,它会格式化代码。在这里发布代码很难。编辑并不总是更新。

答案 1 :(得分:0)

**您可以通过手动设计或数据库中的值将项目添加到下拉列表中。 如果您在一个页面中进行编辑,并且您想在数据库值中设置下拉列表选择值,则将所选值从数据库中取出为字符串并执行此操作。 在我的例子中,我想在下拉列表中显示课程列表&amp;我在数据库中选择的课程是“php”。 我的下拉列表是

的顺序

机器人

asp.net

的java

PHP

在PageLoad **

string course =“php”;

ListItem itm = new ListItem(“course”,“course”);

DropDownList1.SelectedIndex = DropDownList1.Items.IndexOf(itm);

现在当页面加载dropdownlist时,所选项目将为“php”。