我正在尝试创建一个下拉列表,其中包含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
有两个数据行,但它们不会显示在下拉列表中。
我一直在网上寻找答案,我还没有看到一个直截了当的答案。对不起,如果这个问题看起来很模糊,或者几乎很容易,但有什么我遗漏或需要改变吗?
提前致谢
答案 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;