2010-10-18 70 views
0

如何避免在數據綁定組合框中獲取空字段?如何避免在數據綁定組合框中獲取空字段?

+2

你有代碼示例,你有問題嗎? – lincolnk 2010-10-18 19:10:23

+0

實際上,綁定到我的數據庫表中的組合框也會獲得空的文件。我希望它只添加那些有數據的字段。 – 2010-10-18 19:56:49

+0

@ user415037:值是空字符串還是NULL?無論使用哪種方法,您都可以添加一個檢查來僅引入長度大於0或不爲NULL的值。這些細節將取決於您使用的數據類型。 – wergeld 2010-10-18 20:05:24

回答

0

如果您正在使用(的..)列表來保存您的組合框的文本值,那麼你可以嘗試:

Dim idList1 As New List(Of String) 
idList1.Add("1") 
idList1.Add("2") 
idList1.Add("3") 
idList1.Add("1") 

Dim idList2 As New List(Of String) 
idList2 = idList1.Distinct().ToList() 

idList.Distinct()翻出唯一值。所以,如果你要打印idList2中的每個項目,你只會得到(「1」,「2」,「3」)。在創建組合框的內容之前先執行此操作。

0

如果您在收到數據之前無法過濾數據,則可以創建一個新的DataView並應用您自己的過濾器並將其用作數據源。

Dim i As Integer = 0 
Dim table As DataTable = New DataTable 
table.Columns.Add("id", GetType(System.Int32)) 
table.Columns.Add("name", GetType(System.String)) 
i = (i + 1) 
table.Rows.Add(i, "hello") 
i = (i + 1) 
table.Rows.Add(i, string.Empty) 
i = (i + 1) 
table.Rows.Add(i, "what") 
i = (i + 1) 
table.Rows.Add(i, DBNull.Value) 
i = (i + 1) 
table.Rows.Add(i, "derp") 
Dim view As DataView = New DataView(table) 
view.RowFilter = "name <> ''" 
Me.comboBox1.ValueMember = "id" 
Me.comboBox1.DisplayMember = "name" 
Me.comboBox1.DataSource = view 

RowFilter需要一個SQL風格where子句來選擇匹配。這僅包括組合框中的3個很好的值。

首先只選擇您需要的數據仍然是一個更好的主意。