私はWPFアプリに取り組んでいます。ComboBox への書き込みが適切に行われておらず、その理由がわかりません。
Rameses-101
C ドライブには、などのラベルが付いた多数のフォルダーがありますRameses-102
。各フォルダには、MDB データベースに保存されているプロファイルがあります。最近まで、アクティブな「Rameses」フォルダーの名前を変更してプロファイルを変更し、そこで作業を実行していました。
上記は私のフォームの一部であり、インストールされたプロファイル選択コンボボックスには、で始まるすべてのフォルダーが一覧表示されRameses-*
、次にそれらが一覧表示されます。人々は、フォルダの命名規則がひどいので、もっと簡単なものが欲しいと不満を漏らしました。そのため、フォルダー名を使用する代わりに、各フォルダー内のデータベースに保存されている名前を一覧表示し、ドロップダウン ボックスにフォルダー名の代わりにそれらを一覧表示できるようにしたいと考えています。
単一のフォルダーのプロファイル名を表示できるようになりましたが、それだけです。また、すべての名前をリストすることもできましたが、それらは1行にあり、コンボボックスで一緒にマッシュアップされていました。
質問は、コードで何が間違っているのかです。問題がどこにあるのか正確にはわかりません!データリストに項目を適切に追加していないか、ループを適切に閉じていません。
これが私がこれまでに持っているものです:
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();
}
これを達成する方法について何か提案はありますか?