我想将数据库中的两列绑定到下拉列表中。这是我的代码:
SqlConnection con=new SqlConnection(CommonRefference.Constr());
string query = "Select Id,Name+' ('+Distribution_name+') 'as Name1 from BR_supervisor ";
SqlCommand cmd = new SqlCommand(query,con);
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
DropDownList3.DataSource = query;
DropDownList3.DataTextField = "name1";
DropDownList3.DataValueField = "Id";
DropDownList3.DataBind();
}
con.Close();
但它会出现以下错误
DataBinding:'System.Char'不包含名称为'name1'的属性
怎么做?任何帮助我的人都非常感激
答案 0 :(得分:3)
其 Name1 不是 name1
将此更改为
DropDownList3.DataTextField = "Name1";
修改强>
您正在将字符串(查询)绑定到此处的数据源
DropDownList3.DataSource = query;
和string没有名为'name1'的属性,所以错误
解决方案:
请参阅此我已将此更改为您的要求
private void LoadDropDownList()
{
SqlConnection con=new SqlConnection(CommonRefference.Constr());
string query = "Select Id,Name+' ('+Distribution_name+') 'as Name1 from BR_supervisor ";
SqlCommand cmd = new SqlCommand(query,con);
con.Open();
SqlDataReader reader = cmd.ExecuteReader();
DropDownList3.DataSource = reader ;
DropDownList3.DataValueField = "Id";
DropDownList3.DataTextField = "Name1";
DropDownList3.DataBind();
DropDownList3.Items.Insert(0, new ListItem("Select One", "0")); // Adds items to the DDL
DropDownList3.Items.Insert(1, new ListItem("All Categories", "-1"));
con.Close();
}
有关详细说明,请参阅此链接Populate-ASP.NET-dropdownlist
答案 1 :(得分:0)
问题在于:
DropDownList3.DataSource = query;
您将字符串值设置为源,因此它会尝试将char值作为下拉列表的项目。
所以,基本上你需要的是创建某种数据源(List可能是一个很好的数据源),然后通过你的读者填写它,然后你可以做如下的事情:
DropDownList3.DataSource = source;