【发布时间】:2015-05-30 03:04:18
【问题描述】:
DataSet dataSet = new DataSet();
using (SqlConnection connection = new SqlConnection("server=server; database=database; user id=user; password=user"))
{
connection.Open();
using (SqlCommand command = new SqlCommand("SELECT DISTINCT ID FROM TABLE ORDER BY ID ASC", connection))
{
SqlDataAdapter reader = new SqlDataAdapter(command);
reader.Fill(dataSet);
IDComboBox.DataContext = dataSet; --> This doesn't work
IDComboBox.Itemsource = dataSet.Tables[0].Columns[0].ToString() --> doesn't work
IDComboBox.Itemsource = dataSet.Tables[0].Rows[0].ToString() --> doesn't work
IDComboBox.Itemsource = dataSet.Tables[0].Rows --> doesn't work
IDComboBox.Itemsource = dataSet.Tables[0].Columns --> doesn't work
They don't work even with me pairing it the IDComboBox.DataContext = dataSet.Tables[0].Rows[0] or Columns[0]
}
connection.Close();
connection.Dispose();
}
我需要用我的数据表中的数据填充 WPF 中的组合框。我一直在寻找的只是使用 Combobox.Displaymember、Combobox.Source 来执行此操作的示例,但 C# WPF 应用程序没有这些选项。如何使用数据集或数据表中的数据加载 WPF 组合框?
我以前这样做的一种方法是
using (SqlConnection connection = new SqlConnection("server=server; database=database; user id=user; password=user"))
{
connection.Open();
using (SqlCommand command = new SqlCommand("SELECT DISTINCT ID FROM Table ORDER BY ID ASC", connection))
{
SqlDataReader reader = command.ExecuteReader();
while (reader.Read())
{
for (int i = 0; i < reader.FieldCount; i++)
{
IDComboBox.Items.Add(reader[i].ToString());
}
}
}
connection.Close();
connection.Dispose();
}
我知道如果我有大量数据,将它循环到我的组合框中会非常慢,所以我想将它从数据集中转储以减少运行时间。
【问题讨论】: