我正在开发一个 WPF 应用程序。它没有正确写入 ComboBox,我不确定为什么。
在 C 驱动器上,有许多标有 的文件夹Rameses-101
,Rameses-102
依此类推。在每个文件夹中都有一个存储在 MDB 数据库中的配置文件。直到最近,我们才会重命名活动的“Rameses”文件夹以更改配置文件并对其执行工作。
所以上面是我的表单的一部分,安装的配置文件选择组合框列出了所有以开头的文件夹,Rameses-*
然后列出它们。人们抱怨文件夹命名约定很糟糕,并且想要更简单的东西。因此,我希望能够列出存储在每个文件夹内的数据库中的名称,而不是使用文件夹名称,并让下拉框列出这些名称而不是文件夹名称。
我已经到了可以让它显示单个文件夹配置文件名称的地步,仅此而已。我还能够让它列出所有名称,但是它们在一行上并在组合框中混合在一起。
问题是我在代码中做错了什么。不知道问题到底出在哪里!要么我没有正确地将项目添加到数据列表中,要么没有正确关闭循环。
这是我到目前为止所拥有的:
string directory = @"C:\";
string[] folders = Directory.GetDirectories(directory, "Rameses-*");
List<string> dataList = new List<string>();
foreach (string foldername in folders)
{
//var myDataTable = new System.Data.DataTable();
using (var conection = new System.Data.OleDb.OleDbConnection("Provider=Microsoft.JET.OLEDB.4.0;" + "data source=" + foldername + "\\Program\\Ramdata.mdb;Jet OLEDB:Database Password=****"))
{
conection.Open();
var query = "Select u_company From t_user";
var command = new System.Data.OleDb.OleDbCommand(query, conection);
var reader = command.ExecuteReader();
while (reader.Read())
{
//profselect.Text = reader[0].ToString();
dataList.Add(reader[0].ToString());
}
reader.Close();
conection.Close();
}
profselect.DataSource = dataList;
profselect.SelectedText = dataList.Last();
}
关于如何实现这一目标的任何建议?