如何从组合框中的值成员中删除值?

时间:2014-06-09 20:46:18

标签: c# .net winforms combobox valuemember

以下代码更新填充了combobox cmbBox1。

OracleDataAdapter oraAdapter = new OracleDataAdapter(oraCmd);
DataSet oraDataSet = new DataSet();
oraAdapter.Fill(oraDataSet);

cmbBox1.ValueMember = oraDataSet.Tables[0].Columns["Val1"].ToString();

cmbBox1.DisplayMember = oraDataSet.Tables[0].Columns["Disp1"].ToString();
cmbBox1.DataSource = oraDataSet.Tables[0];

我需要帮助来确定如何从cmbBox1中删除少量值。 我是否从ValueMember / DisplayMember中删除值,或者有什么方法可以隐藏cmbBox1中的值? 请指教

2 个答案:

答案 0 :(得分:5)

您可以使用DataView

DataView dv = oraDataSet.Tables[0].DefaultView;
dv.RowFilter = "Code NOT IN (1,2,3)";

cmbBox1.ValueMember = oraDataSet.Tables[0].Columns["Val1"].ColumnName;

cmbBox1.DisplayMember = oraDataSet.Tables[0].Columns["Disp1"].ColumnName;
cmbBox1.DataSource = dv;

答案 1 :(得分:1)

我建议以下列方式使用OracleDataReader

con.Open();
var cb1 = new OracleCommand(string, con);
OracleDataReader dr1 = cb1.ExecuteReader();

while (dr1.Read())
{
     cmbBox1.Items.Add(dr1["Val1"] + ", " + dr1["Val2"]);
     // no need to assign DisplayMember and ValueMember

}
dr1.Close();
dr1.Dispose();
con.Close();

要删除包含特定值的项目,您可以使用:

cmbBox1.Items.Remove("yourText");