2012-01-21 231 views
1

我的代碼有問題。它正確地顯示了組合框的內容,但每當數據爲空時,它就不會返回爲空。基於組合框填充文本框和組合框 - Winforms

我的第一個組合框是客戶端名稱,當我單擊連接到數據庫的組合框中的客戶端名稱後,應將他的性別放在組合框中。

*注意,這是編輯表單所以我知道該怎麼做的就是更新

這是正確的,如果該字段輸入,但如果它不是存儲在組合框中的值沒有被該字段改變爲空

例如:

選擇客戶端1 * 顯示他的性別在組合框(前女) 選擇客戶端2 *性別是女性跆拳道? (鑑於用戶忘記把他的性別)

***所以我的問題是,如果該字段爲空,我的組合框將不會爲空,而是保留我以前使用的值的值。

這是我的代碼。 ** combobox1是客戶名稱列表,combobox2是性別列表

private void BindControls() // function to bind the database to the comboBox 
     { 
      comboBox1.DataSource = _db.Client(); 
      comboBox1.DisplayMember = "client"; //client names are shown in the combobox 
     } 


private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      comboBox2.SelectedItem = ((DataRowView)comboBox1.SelectedItem).Row["gender"].ToString(); //the value of gender in database is put in the combobox2 
     } 

@@在我的性別組合框(combobox2)的項目不綁定到DATABSE我只是手動將值出現在項目組合框的屬性(這是視覺工作室的一個功能)

非常感謝!只是問我是否不清楚,我會添加一些細節。

回答

2

嘗試使用類似:

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
     String genderString = ((DataRowView)comboBox1.SelectedItem).Row["gender"].ToString(); 

     if (!String.IsNullOrEmpty(genderString)) 
     { 
      comboBox2.SelectedItem = ((DataRowView)comboBox1.SelectedItem).Row["gender"].ToString(); //the value of gender in database is put in the combobox2 
     } 
     else 
     { 
      comboBox2.SelectedIndex = -1; 
     } 
} 

它只是設置組合框回到未選中狀態,如果性別是一個空字符串(我懷疑null值不應該出現,因爲這列的值)。