【问题标题】:How to populate listbox dynamically with SQL values如何使用 SQL 值动态填充列表框
【发布时间】: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"});
    }
}

感谢任何帮助!

【问题讨论】:

标签: c# arrays data-binding listbox


【解决方案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"。
  • 啊,看来我不小心截断了部分代码。现在一切正常,非常感谢您的帮助!
猜你喜欢
  • 2020-09-03
  • 2014-05-14
  • 2012-08-04
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 2019-01-05
  • 1970-01-01
  • 2011-12-09
相关资源
最近更新 更多