如何使用 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 [关闭]
如何根据使用 jQuery/AJAX 和 PHP/MySQL 选择的第一个下拉列表填充第二个下拉列表?