gpt4 book ai didi

c# - 如何填充listBox控件?

转载 作者:太空宇宙 更新时间:2023-11-03 20:20:10 24 4
gpt4 key购买 nike

我从数据库中获取数据:

        SqlCommand cmd = new SqlCommand("SELECT * FROM ItemShape", conn);

conn.Open();

SqlDataReader reader = cmd.ExecuteReader();

我需要用接收到的数据填充我的控件,像这样:

         foreach (DataRow item in dt.Rows)
{
lbxObjects.DisplayMember = item["Shape"].ToString();
lbxObjects.ValueMember = item["ID"].ToString();
}

但是在调试之后我的控件是空的知道上面有什么问题吗?

最佳答案

(抱歉 - 我对 ASP.NET 太着迷了,我的第一种方法可能会奏效 - 但在 Winforms 中,它不会..)

您可以使用类似这样的东西 - 将数据加载到 DataTable(这样您的控件就有所有可用的数据)并绑定(bind)它:

using (SqlCommand cmd = new SqlCommand("SELECT * FROM ItemShape", conn))
{
SqlDataAdapter dap = new SqlDataAdapter(cmd);
DataTable tblShapes = new DataTable();
dap.Fill(tblShapes);

// define Display and Value members
lbxObjects.DisplayMember = "Shape";
lbxObjects.ValueMember = "ID";

// set the DataSource to the DataTable
lbxObjects.DataSource = tblShapes;
}

这样,您就不必手动迭代列表 - Listbox 类会为您完成!您只需定义要绑定(bind)的项目集合(通过设置 DataSource),以及每个项目的哪个属性用作 DisplayMemberValueMember

当你在做的时候 - 如果你只需要那个表中的 IDShape - 在你的 这样说选择!

using (SqlCommand cmd = new SqlCommand("SELECT ID, Shape FROM ItemShape", conn))
{

如果您真的只需要其中的两列,那么检索所有列是没有意义的......

关于c# - 如何填充listBox控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14089610/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com