4

我想将数据库中的两列绑定到下拉列表中。这是我的代码:

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”的属性

怎么做?任何帮助我的人都非常感谢

4

2 回答 2

3

它的Name1不是name1

将其更改为

DropDownList3.DataTextField = "Name1";

编辑:

您在此处将字符串(查询)绑定到数据源

DropDownList3.DataSource = query;

并且字符串没有名称为“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

于 2012-11-26T11:47:50.800 回答
0

问题在这里:

DropDownList3.DataSource = query;

您将字符串值设置为源,因此它会尝试将 char 值作为下拉菜单项。

所以,基本上你需要的是创建某种数据源(列表可能是一个很好的),然后通过你的阅读器填充它,然后你可以执行以下操作:

DropDownList3.DataSource = source;
于 2012-11-26T11:54:11.133 回答