如何在现有列表框中选择(突出显示)项目

时间:2012-05-18 16:37:11

标签: c# .net sql-server winforms

我已经存在listbox,需要显示我从数据库中检索到的值。

这里需要在插入之前检查值,如果它已经存在,则寻找突出显示现有项目的方法。

以下是我正在使用的代码

try { 
     myConnection.Open(); 
     SqlCommand myCommand2 = new SqlCommand("SELECT * FROM PatientDataFields where  PatientID='" + x + "'", myConnection); 
     SqlDataReader rdr = myCommand2.ExecuteReader(); 

     while (rdr.Read()) 
     { 
         Form2 form2 = new Form2(); 
         form2.Show();
         form2.Race.SelectedItem = rdr["Race"].ToString();
     } 
    }

2 个答案:

答案 0 :(得分:0)

这样做,并确保从db中返回的值必须存在于列表框控件项

如果数据库值位于listBox(DataTextField)的文本字段中

listbox.SelectedText = valueFromDB;

或者如果数据库值在listBox(DataValueField)的值字段中

listbox.SelectedValue = valueFromDB;

答案 1 :(得分:0)

如果要进行多项选择,请确保将SelectionMode设置为MultiSimple。其余的代码对我来说很好。

try 
{ 
    myConnection.Open(); 
    SqlCommand myCommand2 = new SqlCommand("SELECT * FROM PatientDataFields where  PatientID='" + x + "'", myConnection); 
    SqlDataReader rdr = myCommand2.ExecuteReader(); 

    Form2 form2 = new Form2(); 
    form2.Show();
    form2.Race.SelectionMode = SelectionMode.MultiSimple;
    while (rdr.Read()) 
    {
        string item = rdr["Race"].ToString();

        if (form2.Race.FindString(item) != -1)
            form2.Race.SelectedItem = item;
        else
            form2.Race.Items.Add(item);
    } 
}