2013-01-16 65 views
-2

我已經在窗體加載上完成了組合框綁定。 我想加載大量產品的ComboBox,然後基於條形碼我想在ComboBox中選擇相應的產品。搜索數據集中的項目並在組合框中顯示它

+2

添加一個WHERE子句SQL語句? –

+0

此代碼用於添加條形碼中的所有項目,如果我將使用where語句,則所有其他值將從組合框中刪除。 我需要組合框中的所有值,而只顯示組合框中的選定值。 – alternatefaraz

+0

也許你需要讓你的問題更清楚。如果您希望產品的條碼符合掃描的條碼,那麼只需將WHERE條件添加到現有的SQL語句。 –

回答

1

我相信你正在尋找這樣的:

DataTable products = new DataTable(); 
products.Columns.Add("Product_Name"); 
products.Columns.Add("Product_BarCode"); 

products.Rows.Add("test1", 123456); 
products.Rows.Add("test", 923456); 
products.Rows.Add("test8", 823456); 
products.Rows.Add("test", 723456); 
products.Rows.Add("test0", 023456); 

productname_tb.DataSource = products; 
productname_tb.DisplayMember = "Product_Name"; 
productname_tb.ValueMember = "Product_BarCode"; 

// select the "test8" item by using it's Product_BarCode value of 823456 
for (int i = 0; i < productname_tb.Items.Count; i++) 
{ 
    if (((System.Data.DataRowView)(productname_tb.Items[i])).Row.ItemArray[1].ToString() == "823456") 
    { 
     productname_tb.SelectedItem = productname_tb.Items[i]; 
     break; 
    } 
} 
+0

此代碼爲(int i = 0;我 alternatefaraz

+0

是的,我們可以打破循環,一旦它的價值被發現。 –

1

如果我理解正確,您想要將衆多產品加載到您的ComboBox,然後基於條形碼,您可以選擇ComboBox中的相應產品。請嘗試以下操作:

productname_tb.Items.IndexOf("<YOUR BARCODE>"); 

這是否適合您?

+0

這就是它的一部分。他需要一個將組合框的結果值參數化爲WHERE子句的查詢。 –

+0

使用此代碼後的錯誤是「數據爲空無法使用此類型的代碼null」 我已編輯您的代碼,像這樣productname_tb.Items.IndexOf(productbc_tb.Text); – alternatefaraz

+0

@Robert Harvey僅當他不希望列表中包含僅包含所選特定產品的所有產品時才適用。 WHERE會將組合框限制爲只有1個項目。 – alan

相關問題