gpt4 book ai didi

c# - 将数据集中的值绑定(bind)到下拉列表

转载 作者:行者123 更新时间:2023-12-05 02:35:36 25 4
gpt4 key购买 nike

我有一个下拉列表。我从 oracle 数据库获取数据作为数据集 我想用数据集值(数据文本字段和数据值字段)填充下拉列表。数据正常来自数据库,但我无法将值与下拉列表绑定(bind)。 “ds”是数据集。

ddlDepartment.DataValueField = ds. Tables[0].Rows[0]["DEPARTMENT"].ToString();
ddlDepartment.DataTextField = ds. Tables[0].Rows[0]["DEPARTMENT_NAME"].ToString();

最佳答案

我想你可能理解错了。

下拉组合有一个简单的设置,允许您“设置”将使用您“提供”下拉列表的数据表中的数据源中的哪些值。

所以,你可以有这个标记:

        <asp:DropDownList ID="DropDownList1" runat="server" 
Height="26px" Width="207px"
DataValueField="ID"
DataTextField="HotelName"
>
</asp:DropDownList>

因此,您可以设置使用的两列 - 它们不是用于向下拉列表提供数据的。

您还可以在代码中设置以上两列 ​​- 但执行此操作几乎不需要存在。

例如:

        DropDownList1.DataValueField = "ID";
DropDownList1.DataTextField = "HotelName";

一旦你设置了上面的内容,你现在就可以自由地查询数据库,加载一个数据表,然后将该“表”分配给下拉列表。

你这样做:

        DataTable rstData = new DataTable();
using (SqlConnection conn = new SqlConnection(Properties.Settings.Default.TEST4))
{
string strSQL = "SELECT ID,HotelName, City FROM tblHotels ORDER BY HotelName";
using (SqlCommand cmdSQL = new SqlCommand(strSQL, conn))
{
conn.Open();
rstData.Load(cmdSQL.ExecuteReader());
DropDownList1.DataSource = rstData;
DropDownList1.DataBind();
// add one blank row selection.
DropDownList1.Items.Insert(0, new ListItem("- Select.. -", "0"));
}
}

所以,请注意数据表是如何有 3 列的,但是您要将这 3 列中的哪一列用于下拉列表?您有两列 - 通常是“ID”或“PK”值,然后第二列是文本描述。

现在,我正在使用 SqlProvider(用于 sql server)。您必须将 SqlCommand 替换为 OracleSQL 命令以及连接。但数据表和填充下拉列表的代码与上述相同 - 无论您使用的是哪种数据提供程序。

所以这两个设置(DataValueField、DataTextField)不是提要数据,而只是设置要使用数据表中的哪些列。我的示例有 3 列,但该表中可能有 20 列 - 因此这两个设置决定了使用哪两列。通常你可能有一个简单的下拉菜单来选择一种颜色或类似的颜色 - 因此你只需要一列。在这种情况下,将值/文本字段设置为同一列。

关于c# - 将数据集中的值绑定(bind)到下拉列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70494230/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com