2013-08-04 52 views
1

我有一個Listbox調用TeachersList我用數據庫中的字符串值填充它。現在我想刪除任何被導入爲空的東西。當列表加載它給出空白項目,我不想這樣。我嘗試使用for循環,但它不起作用。 這是我用如何刪除列表框中的空項目?

int CountEmptyValues = TeachersList.Items.Count; 
for (int i = CountEmptyValues - 1; i >= 0; i--)   
    if (TeachersList.Items[i].ToString() == " ") 
    { 
     TeachersList.Items.RemoveAt(i); 
    } 

任何形式的幫助將高度讚賞。

這裏是我如何增加從數據庫項目到列表框中

   MySqlConnection TeachersDB = new MySqlConnection(); 
       string SchoolsDbString = TeachersDB.ConnectionString = @"server=localhost;Port=3306; user id=root; password=test; database=" + Globals.DBChosen; 
       MySqlDataAdapter SubjectsAdapter = new MySqlDataAdapter("Select " + SearchByField.Text + " From users", TeachersDB); 
       DataSet Dataset = new DataSet(); 
       TeachersDB.Open(); 

       SubjectsAdapter.Fill(Dataset); 
       TeachersList.DataSource = Dataset.Tables[0]; 
       TeachersList.DisplayMember = SearchByField.Text; 
+0

我的問題是首先要添加'Empty'值你爲什麼嗎?爲什麼你不能過濾和添加? –

+0

@SriramSakthivel以及我真的不想增加空值。我如何過濾它們?我只使用了一個簡單的導入代碼。但我沒有經過任何過濾程序。這怎麼可能? –

+0

讓我看看添加的代碼 –

回答

1

您可以輕鬆過濾使用Linq表,我們創建了一個DataView了出來,並設置DataView作爲數據源。你完成了。

string searchBy = SearchByField.Text; 
TeachersList.DataSource = Dataset.Tables[0].AsEnumerable().Where(x => !string.IsNullOrWhiteSpace(x.Field<string>(searchBy))).AsDataView(); 
TeachersList.ValueMember = searchBy; 

希望這有助於

+0

這完美的作品!非常感謝你的幫助!非常感謝 –

+0

@MuhandJumah您可以使用where條件從sql中過濾字符串。我想這會更有效率。 –

+0

嗯這是有道理的使用以及。這是一個很好的使用,它並沒有跨越我的腦海赫赫 –