如何使用 SQL 值动态填充列表框

Posted

技术标签:

【中文标题】如何使用 SQL 值动态填充列表框【英文标题】:How to populate listbox dynamically with SQL values 【发布时间】:2012-02-25 08:55:24 【问题描述】:

我是 C# 初学者。我想要做的是从 SQL 数据库中的列中提取数据并将其写入列表框。基本上,我希望我的表的 part_num 列中的数据在列表框中动态显示。

我见过:

this.listParts.Items.AddRange(new object[] "Part1", "Part2");

但是我将如何用 SQL 动态生成的值替换“Part1”和“Part2”?

public mainForm()

    InitializeComponent();
    SqlConnection conn = new SqlConnection(
        "Data Source=DBELL;Initial Catalog=part_table;Integrated Security=True");
    conn.Open();
    DataSet ds = new DataSet();
    SqlDataAdapter adapter = new SqlDataAdapter(
        "SELECT part_num from customParts", conn);
         adapter.Fill(ds);
    foreach (DataRow row in ds.Tables[0].Rows)
    
        for (int i = 0; i < ds.Tables[0].Columns.Count; i++)

        this.listParts.Items.AddRange(new object[] "Part1", "Part2");
    

感谢任何帮助!

【问题讨论】:

直接绑定到DataTable。 msdn.microsoft.com/en-us/library/w67sdsex.aspx BTW 作为您的 SqlConnection 实现 IDisposable 您应该查看 using 语句并将您的数据绑定代码移动到它自己的方法。 msdn.microsoft.com/en-us/library/yh598w02%28v=VS.80%29.aspx 【参考方案1】:

为什么不将DataTable 用作DataSource

public mainForm()
        
            InitializeComponent();
            SqlConnection conn = new SqlConnection("Data Source=DBELL;Initial Catalog=part_table;Integrated Security=True");
            conn.Open();
            DataSet ds = new DataSet();
            SqlDataAdapter adapter = new SqlDataAdapter(
            "SELECT part_num from customParts", conn);
            adapter.Fill(ds);
            this.listParts.DataSource = ds.Tables[0]; 
            this.listParts.DisplayMember = "part_num"; 
        

您应该阅读 DataSets 甚至更好的 EntityFramework 和数据绑定。

【讨论】:

好吧,这看起来简单多了,但是当我部署它时,我看到的是“System.Data.DataRowView”而不是数据库值。我必须将某些内容转换为字符串吗? 你不需要。只需指定 DisplayMember,例如DisplayMember="part_num"。 啊,看来我不小心截断了部分代码。现在一切正常,非常感谢您的帮助!

以上是关于如何使用 SQL 值动态填充列表框的主要内容,如果未能解决你的问题,请参考以下文章

在使用表中的连接列值填充列表框时,如何检索相应的 ID 并传递值 onchange [关闭]

WPF 列表框动态填充 - 如何让它刷新?

如何根据使用 jQuery/AJAX 和 PHP/MySQL 选择的第一个下拉列表填充第二个下拉列表?

如何在 jsp 和 ajax 中为两个选择选项框动态地从 mysql 获取和填充值到 HTML 选择选项

如何填充列表中的值并将其转换为数据框?

使用 SQL (SDF) 数据库中的项目填充 WPF 列表框