0

既に存在listboxしていて、DB から取得した値を表示する必要があります。

ここでは、挿入する前に値を確認する必要があります。値が既に存在する場合は、既存のアイテムを強調表示する方法を探します。

これが私が使用しているコードです

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

複数選択したい場合は、必ず 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 に答える
0

このようにして、データベースからの値の戻り値がリストボックス コントロール項目に存在する必要があることを確認します

リストボックス(DataTextField)のテキストフィールドにデータベース値がある場合

listbox.SelectedText = valueFromDB;

または データベース値が listBox (DataValueField) の値フィールドにある場合

listbox.SelectedValue = valueFromDB;
于 2012-05-18T16:42:47.133 に答える