[英]check value in valuemember of combobox c# .net windows forms
我有一個組合框,它的值成員具有以下值:AA,BB,CC,DD,EE。
組合框Valuemember從數據集中填充。
用戶在文本框中輸入一個值,我需要能夠檢查在文本框中輸入的值是否是組合框Valuemember列表的一部分。
組合框填充如下:
OracleCommand oraCmd = new OracleCommand();
oraCmd.Connection = oraConn;
oraCmd.CommandType = CommandType.StoredProcedure;
oraCmd.CommandText = "sp1";
OracleCommandBuilder.DeriveParameters(oraCmd);
oraCmd.Parameters["Val1"].Value = "Val1";
oraCmd.Parameters["Val2"].Value = "Val2";
//Populate DataSet
OracleDataAdapter oraAdapter = new OracleDataAdapter(oraCmd);
DataSet oraDataSet = new DataSet();
oraAdapter.Fill(oraDataSet);
combobox1.ValueMember = oraDataSet.Tables[0].Columns["Val1"].ToString();
combobox1.DisplayMember = oraDataSet.Tables[0].Columns["Val2"].ToString();
combobox1.DataSource = oraDataSet.Tables[0].DefaultView;
我試過了,但是不起作用:
if (combobox1.ValueMember.Contains("XX"))
{
combobox1.SelectedItem = "XX";
}
else
{
combobox1.SelectedItem = "";
}
請幫助!
ValueMember
和DisplayMember
屬性僅指定基礎數據源中的哪些值應表示每個項目的基礎值,以及顯示給用戶的值。
嘗試分配數據源,值和顯示成員,如下所示:
combobox1.DataSource = oraDataSet.Tables[0];
combobox1.ValueMember = "Val1";
combobox1.DisplayMember = "Val2";
然后嘗試搜索所需的值,如下所示:
if (((DataTable)combobox1.DataSource).AsEnumerable()
.Cast<DataRow>()
.Select(x => Convert.ToString(x["Val1"]))
.Contains("XX"))
{
... // value found in combobox
}
您可以嘗試使用其他語法:
if (comboBox1.Items.Cast<DataRowView>()
.Select(x => Convert.ToString(x["Val1"])
.Contains("XX"))
{
...
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.