我正在開發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();
}
就如何實現這一目標有什麼建議?
不應該最後兩條語句'profselect.DataSource = dataList;'和'profselect.SelectedText = dataList.Last();'超出for循環塊嗎?顯然,DataSource在每次循環迭代中都被覆蓋。 –
它做到了烏鴉。現在一切似乎都在起作用。愚蠢的我,我以爲他們一眼就看出來了。謝謝 !! –