2016-10-12 71 views
1

我必須使用C#創建項目管理系統。填寫一個包含名稱和項目ID的保管箱

我的問題是如何填充項目名稱的下拉列表並保持項目ID隱藏。所以當我添加一個任務時,我可以選擇項目來添加一個任務。

我想有組合框內部的信息(例如,這會從數據庫中推出):

Project 1  
Project 2  
Project 3 

我想隱藏什麼:

ProjectID = 1 
ProjectID = 2 
ProjectID = 3 

所以,當我選擇項目,我也會在我的查詢中使用該ID。

這是我的形式看起來像現在:

C# form

+0

什麼平臺,這是怎麼做呢? WPF? – itsme86

+0

@ itsme86如果你的意思是使用什麼軟件,它的Visual Studio –

回答

0

通常當你從數據庫中獲取數據,你在一個DataTable或通用數據源保存它。所以,當你結合你的組合框,你應該做這樣的事情:

DataTable data = data_from_database(); //method that returns your data 
comboBox1.DisplayMember = "title"; 
comboBox1.ValueMember = "id"; 
comboBox1.DataSource = data; 

Populating value and text of ComboBox

+0

我是否在負載內部執行此操作?或者我把它放在哪裏? –

+0

是的,你應該把它放在load_page裏面。當你添加代碼時,你告訴你的組合框使用數據表作爲其數據源,並且它必須顯示'標題'列並保存'id'列相關。 – cancinos

+0

那麼我在data_from_database()中填寫什麼?我是否對它進行查詢? –

0

設置組合框

Droplist.DataSource = GetListItems(); //Get data from database. 
    Droplist.DataValueField = "Value"; 
    Droplist.DataTextField = "DisplayText"; 
    Droplist.DataBind(); 
+0

而我該如何讓它可以填充GetListItems();用值?我之前有過這種調節器,但我不知道如何使它在我的形式下工作。 –

0
public void LoadSubjects() 
    { 
     List<ProjectItem> items = new List<ProjectItem>(); 

     string connectionString = "SERVER=" + server + ";" + "DATABASE=" + database + ";" + "UID=" + uid + ";" + "PASSWORD=" + password + ";"; 

     try 
     { 
      using (MySqlConnection con = new MySqlConnection(connectionString)) 
      { 

       con.Open(); 
       string query = "SELECT ID, Naam FROM projecten"; 

       MySqlCommand comm = new MySqlCommand(query, con); 

       MySqlDataReader reader = comm.ExecuteReader(); 

       while (reader.Read()) 
       { 
        int id = (int)reader["ID"]; 
        string nm = (string)reader["Naam"]; 
        items.Add(new ProjectItem(id, nm)); 
       } 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(Convert.ToString(ex)); 
     } 
     comboBox1.Items.Clear(); 
     comboBox1.Items.AddRange(items.ToArray<ProjectItem>()); 
    } 
相關問題