2013-07-03 114 views
0

我有一個有趣的問題,我相信。我正在編寫一個應用程序,它在C:\中進行搜索,以查找遵循相同命名約定的文件夾。當找到文件夾時,應用程序需要進入文件夾內的數據庫並提取一位數據。該數據應添加到列表框或下拉列表中。下面是我到目前爲止,它正確抓住一個文件夾....但不是所有的文件夾具有相同的命名約定。我相信這是將數據數組添加到多個數據庫的下拉列表中

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

線但不確定。

目標是,我有4個不同的文件夾,名稱如Rameses-100,Rameses-101等。每個文件夾都包含它自己的Ramdata.mdb。而且MDB是我希望在profselect下拉框中列出的名稱。更進一步,用戶將能夠使用框中列出的名稱切換到選定的數據集。目前,如果我運行它,它只是把文件夾中的一個ramdata信息放在框中。我想有更多的一個。

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(); 
      } 
+0

OK,然後呢?你想添加結果到dropDown, 還是有一些錯誤?你的問題不夠清楚。 – Star

+0

我沒有收到任何錯誤,字符串(在這種情況下,查詢的結果)應放入profselect下拉框中。我用完整的代碼片段編輯了上面的代碼。 –

+0

你還沒有問過問題,所以你現在正在做的是要求某人爲你開發你的應用程序。 –

回答

0

你的問題還不夠清楚,但可以說上面的代碼工作。

您希望每次執行此操作時都添加結果(我假設)。
再次假設您使用Windows窗體。
在窗體上放置一個組合框。

然後,當執行操作時,您需要保留之前得到的內容列表,然後將其用作comboBox的dataSource。 下面的代碼演示了這一點:

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(); 

是據我可以和你給了這麼多的信息幫助。

+0

所以我想我沒有保持對結果的理解,只是試圖直接將它們寫入下拉框。我很抱歉,我的問題沒有更清楚,我很難解釋我在做什麼,它就像一個配置文件轉換器,每個文件夾包含一個用戶配置文件,並且該信息存儲在t_user字段中。最初的下拉框中列出了可供某些人閱讀而不是其他人閱讀的文件夾的名稱。按名稱選擇比較容易。我認爲在該領域獲得的名稱,並列出,而不是隻是文件夾名稱會更容易 –

+0

@ShaneSuperflyMacNeill好吧,我明白,我想我涵蓋了你的需要在我的答案,我希望這有助於。 – Star

+0

但是你需要告訴你在哪個平臺上工作,它是winForms嗎?訪問表單? WPF? – Star

相關問題