第一种方法:
string sqlstr = "DATA SOURCE=127.0.0.1,1433;Password=123;UID=sa";
string cmdstr = "SELECT * FROM admin";
SqlConnection conn = new SqlConnection(sqlstr);
SqlCommand cmd = new SqlCommand(cmdstr, conn);
SqlDataReader rdr = cmd.ExecuteReader();
if(rdr!=null)
{
DropDownList1.DataSource = rdr;
DropDownList1.DataTextField = "name";
DropDownList1.DataValueField = "name";
DropDownList1.DataBind();
}
说明:使用这种方法绑定切忌不能对SqlDataReader进行Read(),因为这样子会从第二条数据绑定开始
我给DropDownList的DataTextField和DataValueField都绑定同一个字段name是为了演示而已,大家可
以在具体应用绑定两个不同字段,最后要记得DataBind()一下,否则无数据显示
第二种方法:
string sqlstr = "DATA SOURCE=127.0.0.1,1433;Password=123;UID=sa";
string cmdstr = "SELECT * FROM admin";
SqlConnection conn = new SqlConnection(sqlstr);
SqlCommand cmd = new SqlCommand(cmdstr, conn);
SqlDataReader rdr = cmd.ExecuteReader();
while (rdr.Read())
{
ListItem item = new ListItem(rdr[0].ToString(), rdr[0].ToString());
DropDownList1.Items.Add(item);
}
说明:这个是笨方法,相当把数据一条一条的填充到DropDownList里面,因为DropDownList里面的每一
项都是一个类型为ListItem的这么个东西,所以可以给它一个一个绑定,当然这种办法效率肯定不高,不
合适数据量大的时候的绑定。
最后补充一下,我这里说的是SqlDataReader的作为数据源,其实还可以使用DataTable,DataSet这些来
作为它的数据库也是一样的道理。
在gridview等控件中绑定dropdownlist的简单方法
<asp:TemplateField HeaderText="是否锁定">
<ItemTemplate>
<asp:DropDownList ID="isLock" runat="server" SelectedValue=<%# Bind("cateIsLock") %>>
<asp:ListItem Text="是" Value="True"></asp:ListItem>
<asp:ListItem Text="否" Value="False"></asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
摘自 http://hi.baidu.com/new%BD%CC%B8%B8/blog/item/e972900a51f88e8cd1581b06.html