c#
  • winforms
  • combobox
  • listbox
  • 2016-07-09 41 views 0 likes 
    0

    我的組合框決定列表框中顯示的項目。但是,索引更改後列表框不會更新。列表框不更新組合框索引變化

    private void cmbProdType_SelectedIndexChanged(object sender, EventArgs e) 
    {    
        String query = "Select * From Product Where ProductType = '"+cmbProdType.SelectedValue+"'";  
        Prods = db.GetDataTable(query); 
        dataGridView1.DataSource = Prods; 
        foreach (DataRow dr in Prods.Rows) 
        { 
         ProdName.Add(dr[1].ToString()); 
         PrevCount.Add(int.Parse(dr[2].ToString()));     
        } 
        listBox1.DataSource = ProdName; 
        listBox2.DataSource = PrevCount;  
    }  
    

    datagridview會進行更新,因此它排除了有問題的查詢。

    +0

    這是Windows窗體?或ASP.NET? – user3185569

    +0

    它的窗體形式 – Cleaven

    +0

    首先,使用參數化查詢來防止SQL注入攻擊。然後它就足以設置'listBox1.DataSource = Prods;'然後將'listBox1.DisplayMember'設置爲產品類型的字段名稱,如「Name」。同樣,如果你想使用'listBox1'的'SelectedValue',那麼你需要將'ValueMember'設置爲'ProductType'的字段,就像''Id''一樣。 –

    回答

    0

    您還需要設置DataTextFieldDataValueField

    listBox1.DataSource = ProdName; 
    listBox1.DataTextField = "Value"; 
    listBox1.DataValueField = "Key"; 
    

    而且如果它是ASP.NET,那麼你需要調用DataBind()

    listBox1.DataBind(); 
    
    相關問題