2012-08-04 61 views
0

我在c#.net服务器端创建了一个下拉列表...但这不起作用..任何人都知道这里出了什么问题?在c#.net服务器端创建一个下拉列表

string conncetionStr = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString; 
    SqlConnection msSQLConnectoin = new SqlConnection(conncetionStr); 
    SqlCommand msSQLCommand = msSQLConnectoin.CreateCommand(); 

    msSQLCommand.CommandText = "app_Event_Type_Select"; 
    msSQLConnectoin.Open(); 
    SqlDataReader msDataReader = msSQLCommand.ExecuteReader(); 

    while (msDataReader.Read()) 
    { 
     dropDown.DataSource = msDataReader["Name"].ToString(); 
     dropDown.DataTextField = msDataReader["Name"].ToString(); 
     dropDown.DataValueField = msDataReader["EventTypeID"].ToString(); 
     dropDown.DataBind(); 

    } 
+0

你有你想要的名单在下拉列表中查看? – 2012-08-04 05:01:05

回答

2
string conncetionStr = ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString; 
SqlConnection msSQLConnectoin = new SqlConnection(conncetionStr); 
SqlCommand msSQLCommand = msSQLConnectoin.CreateCommand(); 

msSQLCommand.CommandText = "app_Event_Type_Select"; 
msSQLConnectoin.Open(); 
SqlDataReader msDataReader = msSQLCommand.ExecuteReader(); 


dropDown.DataSource = msDataReader; 
dropDown.DataTextField = "Name"; 
dropDown.DataValueField = "EventTypeID"; 
dropDown.DataBind(); 
msSQLConnectoin.Close(); 
msSQLConnectoin.Dispose(); 

dropDown.Items.Insert(0, "--Select Name--"); 
} 

替换msDataReader["Name"].ToString()与您的数据读写名msDataReader

+0

你做错了 – 2012-08-04 05:05:54

+0

代码有什么问题? – 2012-08-04 05:07:08

+0

DataBinding:'System.Data.Common.DataRecordInternal'不包含名称为'AFL'的属性。 – 2012-08-04 05:09:09

0

hereDataSource属性应该包含控件需要绑定到的所有信息的对象进行设置。 DataTextFieldDataValueField应该是对DataSource对象上实际数据的引用。一个简单的方法来实现你的目标可能是使用TextValue领域准备DataTable然后这种方式将控件绑定:

dropDown.DataSource = dt; 
dropDown.DataTextField = "Text"; 
dropDown.DataValueField = "Value"; 
dropDown.DataBind(); 

在MSDN网站上,你会发现你相同的情况下Here

0

我相信DataTextField和DataValueField应该是你已经绑定的属性的字符串表示,看到这个related post

dropDown.DataSource = msDataReader; 
dropDown.DataTextField = "Name"; 
dropDown.DataValueField = "EventTypeID"; 
1

示例代码:

protected void Page_Load(object sender, EventArgs e) 
    { 
     bindDropdownlist() 
    } 

public void bindDropdownlist() 
    { 
     SqlDataAdapter dap = new SqlDataAdapter("select colmn1,colmn2 from table", con); 
     DataSet ds = new DataSet(); 
     dap.Fill(ds); 
     DropDownList1.DataSource = ds.Tables[0]; 
     DropDownList1.DataTextField = "colmn1"; 
     DropDownList1.DataValueField = "colmn2"; 
     DropDownList1.DataBind(); 
     DropDownList1.Items.Insert(0, "..select..."); 
    }