在Binding中连接下拉列表DataTextField中的两个DataSet列

时间:2014-03-14 17:41:00

标签: c# asp.net

我有下拉列表,我必须从后端绑定。我使用DataSet绑定数据,但需要在Dropdownlist的datatextfield中连接两个列数据。

这是我的代码。

string sqlGetClass = "select * from tbl_studentClass";
SqlCommand cmdGetClass = new SqlCommand(sqlGetClass, conn);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmdGetClass);
DataSet ds = new DataSet();
da.Fill(ds);
ddlClass.DataSource = ds;
ddlClass.DataTextField = "brachName"+"-"+"classYear";
ddlClass.DataValueField = "pk_classID";
ddlClass.DataBind();
ddlClass.Items.Insert(0, new ListItem("--SELECT--", ""));
conn.Close();

如果我使用单个列,则dropdownlist绑定正常,但是当连接它们时它会给出错误 DataBinding:' System.Data.DataRowView'不包含名称为' brachName-classYear'的属性。 谁绑定数据。

运行良好的代码是:

string sqlGetClass = "select * from tbl_studentClass";
SqlCommand cmdGetClass = new SqlCommand(sqlGetClass, conn);
conn.Open();
SqlDataAdapter da = new SqlDataAdapter(cmdGetClass);
DataSet ds = new DataSet();
da.Fill(ds);
ddlClass.DataSource = ds;
ddlClass.DataTextField = "brachName";
ddlClass.DataValueField = "pk_classID";
ddlClass.DataBind();
ddlClass.Items.Insert(0, new ListItem("--SELECT--", ""));
conn.Close();

但我需要连接branchName和类,如M.Sc-1st Year。 请帮忙。提前致谢。

1 个答案:

答案 0 :(得分:2)

您最好的选择是在查询中指定新列,然后将其用作文本字段:

string sqlGetClass = "select [pk_classID], [brachName] + '-' + [classYear] as [classText] from tbl_studentClass";
...
ddlClass.DataTextField = "classText";