从数据库插入ListBox

时间:2013-08-13 17:59:44

标签: c# sql database listbox listboxitem

问题:如何从数据库中将项目插入列表框?

以下是我的尝试:

    public void Fetch()
    {
        using (SqlConnection cn = new SqlConnection(UtilObj.ConnectionString()))
        {
            cn.Open();
            ExecuteFetch(cn);
            cn.Close();
        }
    }

    public void ExecuteFetch(SqlConnection cn)
    {
        using (SqlCommand cm = cn.CreateCommand())
        {
            cm.CommandType = CommandType.StoredProcedure;
            cm.CommandText = "spName";
            cm.Parameters.AddWithValue("@Param1", Param1Val);
            using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader()))
            {
                while (dr.Read())
                {
                    myListBox.Items.Add(dr["Color"].ToString());
                }
            }
        }
    }

当我运行代码时,即使它在调试器中填充,也会显示一个空列表。

ASPX页面

<asp:ListBox ID="myListBox" runat="server" />

1 个答案:

答案 0 :(得分:0)

我认为你正在寻找这样的东西: -

执行sp

后获取读者对象
SqlDataReader reader = cmd.ExecuteReader(); 

myListBox.DataSource= reader; //reader object
myListBox.DataTextField = "Color"; // the field you want to show in listbox
myListBox.DataValueField = "Color"; // the value filed behind the items. 
myListBox.Databind();

如果您想要那样,文本和值字段也可以相同

就是这样。这与将项目绑定到下拉列表的方式相同。刚刚在我们最近的项目中使用过它

希望它有用