2016-12-23 5 views
0

私は現在、自分のフォームに2つのComboBoxを持っています。 ComboBox Aは、特定の項目の選択に使用されます。 ComboBox Bは、ComboBox Aで行われた選択に固有の4つのアイテムを入力します。そのすべてを取得できました。前のコンボボックス選択を上書きしますか?

私の問題は:私がコンボボックスAで選択すると、コンボボックスBはコンボボックスAで行った選択に固有の4つの項目を入力します。しかし、コンボボックスAで別の項目を選択すると、項目は上書きされませんコンボボックスBに移入された以前のアイテムは、既に移入されたアイテムに追加されただけです。

私の質問は、ComboBox Aで新しい選択が行われたときに、以前の項目をComboBox Bに上書きすることです。

Imports MySql.Data.MySqlClient 
Public Class Form2 
Dim MySqlConn As MySqlConnection 
Dim COMMAND As MySqlCommand 
Private Sub Form2_Load(sender As Object, e As EventArgs) Handles MyBase.Load 
    MySqlConn = New MySqlConnection 
    MySqlConn.ConnectionString = "server=localhost;userid=root;password=root;database=test" 
    Dim READER As MySqlDataReader 
    Try 
     MySqlConn.Open() 
     Dim Query As String 
     Query = "select * from test.boxinformation" 
     COMMAND = New MySqlCommand(Query, MySqlConn) 
     READER = COMMAND.ExecuteReader 
     While READER.Read 
      Dim boxSN = READER.GetString("Box_SN") 
      ComboBox_Box.Items.Add(boxSN) 
     End While 
     MySqlConn.Close() 
    Catch ex As MySqlException 
     MessageBox.Show(ex.Message) 
    Finally 
     MySqlConn.Dispose() 
    End Try 
End Sub 
Private Sub ComboBox_STSBox_SelectedIndexChanged(sender As Object, e As EventArgs) Handles ComboBox_Box.SelectedIndexChanged 
    MySqlConn = New MySqlConnection 
    MySqlConn.ConnectionString = "server=localhost;userid=root;password=root;database=test" 
    Dim READER As MySqlDataReader 
    Try 
     MySqlConn.Open() 
     Dim Query As String 
     Query = "select * from test.boxinformation where Box_SN='" & ComboBox_Box.Text & "'" 
     COMMAND = New MySqlCommand(Query, MySqlConn) 
     READER = COMMAND.ExecuteReader 
     While READER.Read 
      ComboBox_Port.Items.Add(READER.GetString("1_IP")) 
      ComboBox_Port.Items.Add(READER.GetString("2_IP")) 
      ComboBox_Port.Items.Add(READER.GetString("3_IP")) 
      ComboBox_Port.Items.Add(READER.GetString("4_IP")) 
     End While 
     MySqlConn.Close() 
    Catch ex As MySqlException 
     MessageBox.Show(ex.Message) 
    Finally 
     MySqlConn.Dispose() 
    End Try 
End Sub 

+0

はい、ので、あなたのコードをアップロードしてくださいあなた自身のコードで変更することができます –

+0

'User_Form'' ComboBox'を使用している可能性が高いので、新しい項目を追加する前に毎回クリアする必要があります。あなたの 'User_Form'モジュールの中で' Me.ComboBox1.Clear'を使います。 –

+0

私のコードをアップロードしましたが、これがどのように実装されるのか教えてください。どうもありがとうございました。 –

答えて

0

ComboBox_Port.Clearを使用し、あなたの行の後

READER = COMMAND.ExecuteReader 

をそれを置くので、あなたのコードは次のようになります。

READER = COMMAND.ExecuteReader 
' *** drop your new line here *** 
ComboBox_Port.Clear 
While READER.Read 
    ComboBox_Port.Items.Add(READER.GetString("1_IP")) 
    ComboBox_Port.Items.Add(READER.GetString("2_IP")) 
    ComboBox_Port.Items.Add(READER.GetString("3_IP")) 
    ComboBox_Port.Items.Add(READER.GetString("4_IP")) 
End While 
+0

その行を追加するとエラーが表示されます。「 'Clear」は' ComboBox 'のメンバーではありません。 " –

+0

気にしないでください。私はライン "ComboBox_Port.Items.Clear"を追加しなければならなかった、あなたの助けに感謝!! –

+0

私の答えがあなたの問題を解決したら答えとしてマークしてもよろしいですか? –

0

エンドクラスあなたはまず、この振る舞いを期待される古いものを削除せずに新しい項目を追加する場合。新しいセットを追加する前にコンボボックスからすべてのアイテムを削除するには、objectCollectionをこのようにクリアする必要があります。以前の値からcelanあなたのComboBoxのために

ComboBoxA.ObjectCollection.Clear() 
'now add your new set of items... 
関連する問題