0

我有一个已经存在的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();
     } 
    }
4

2 回答 2

0

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

如果数据库值在 listBox (DataTextField) 的 Text 字段中

listbox.SelectedText = valueFromDB;

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

listbox.SelectedValue = valueFromDB;
于 2012-05-18T16:42:47.133 回答
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);
    } 
}
于 2012-05-18T17:39:21.753 回答