下拉列表未设置DataValueField

时间:2018-04-17 11:37:00

标签: c# asp.net sql-server

我正在尝试创建一个下拉列表,其中包含SQL-Server中表中的所有字段。下拉列表不会填充,当我使用另一种填充方法时,我无法设置DataValueField。这是我的表的SQL-Server代码

CREATE TABLE SUPPORTTEAM
(
supportTeamID int NOT NULL,
supportTeamName varchar(35) NOT NULL,
supportTeamDesc varchar(200) NOT NULL,

Constraint pk_supportTeamID primary key (supportTeamID)

)

我要做的是将DataValueField设置为SupportTeamID并将DataTextField设置为SupportTeamName。这是我到目前为止所尝试的内容

String Sql = @" select * from SUPPORTTEAM";
SqlConnection conn = new SqlConnection(Properties.Resources.cString);
SqlDataAdapter DA = new SqlDataAdapter(Sql, Properties.Resources.cString);          
DataSet DS = new DataSet();
DA.Fill(DS, "SUPPORTTEAM");
DataTable DT = DS.Tables["SUPPORTTEAM"];

DropDownList1.DataValueField = "SupportTeamID";
DropDownList1.DataTextField = "SupportTeamName";
DropDownList1.DataSource = DT;

DT有两个数据行,但它们不会显示在下拉列表中。

我一直在网上寻找答案,我还没有看到一个直截了当的答案。对不起,如果这个问题看起来很模糊,或者几乎很容易,但有什么我遗漏或需要改变吗?

提前致谢

2 个答案:

答案 0 :(得分:1)

您需要调用DropDownList.DataBind将控件实际绑定到数据:

DropDownList1.DataSource = DT;
DropDownList1.DataBind();

答案 1 :(得分:1)

我认为问题出在桌面填充上。试试这样:

    String Sql = @" select * from SUPPORTTEAM";
    SqlConnection conn = new SqlConnection(Properties.Resources.cString);
    SqlDataAdapter DA = new SqlDataAdapter(Sql, 
    Properties.Resources.cString);          
    DataSet DS = new DataSet();
    DA.Fill(DS); // change here
    DataTable DT = DS.Tables[0]; // and here

    DropDownList1.DataValueField = "SupportTeamID";
    DropDownList1.DataTextField = "SupportTeamName";
    DropDownList1.DataSource = DT;