0

我有一个有趣的问题,我相信。我正在编写一个应用程序,它在 C:\ 中搜索遵循相同命名约定的文件夹。找到文件夹后,应用程序需要进入文件夹内的数据库并提取一位数据。该数据应添加到列表框或下拉列表中。以下是我到目前为止的内容,它正确地抓取了一个文件夹......但并非所有文件夹都具有相同的命名约定。我相信这是

profselect.Text = reader[0].ToString();

行但不确定。

目标是,我有 4 个不同的文件夹,名称分别为 Rameses-100、Rameses-101 等。每个文件夹都包含它自己的 Ramdata.mdb。在那个 MDB 中有一个我想在 profselect 下拉框中列出的名称。再往前走,用户将能够使用框中列出的名称切换到选定的数据集。目前,如果我运行它,它只会将文件夹 ramdata info 之一放入框中。我想要不止一个。

string directory = @"C:\";
        string[] folders = Directory.GetDirectories(directory, "Rameses-*");
        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();
                conection.Close();
            }
4

1 回答 1

0

您的问题不够清楚,但是可以说上面的代码正在运行。

您希望每次执行此操作时都添加结果(我假设)。
再次假设您使用的是 Windows 窗体。
在您的表单上放置一个组合框。

然后在执行操作时,您需要保留之前获得的内容的列表,然后将其用作组合框的数据源。下面的代码演示了这一点:

 List<string> dataList = new List<string>(); // this line is global not inside a closed scoop
 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(profselect.Text);
    }
 }
 myComboBox.DataSource = dataList;
 myComboBox.SelectedText = dataList.Last();

据我所知,你提供了这么多信息。

于 2013-07-03T23:38:10.663 回答