2017-02-02 3 views
0

データベースからデータを取得するデータグリッドビューを使用していますが、正常に機能していますが、フォームを閉じてもう一度開くと、以前の内容は消去されません。新しい選択が行われた前の選択が出力されます。 私はこのコードを試しました:データバインドを解除するdatagridview vb.net

compSpecs.modelDatagridview1.DataSource = Nothing 
    compSpecs.modelDatagridview1.Rows.Clear() 
    compSpecs.modelDatagridview1.Columns.Clear() 

しかし、それはまだ明らかです。たぶん私はそれを正しくしていないでしょう。助けてください。まず

Private Sub load_model2() 
    conn = New MySqlConnection 
    conn.ConnectionString = "server=127.0.0.1; port=3306; username=root; [email protected]; database= atos_db" 
    Dim sda As New MySqlDataAdapter 
    Dim bsource As New BindingSource 
    compSpecs.modelDatagridview2.DataSource = Nothing 
    compSpecs.modelDatagridview2.Rows.Clear() 
    compSpecs.modelDatagridview2.Columns.Clear() 
    Try 
     conn.Open() 
     Dim query As String 
     query = "select * from atos_db.itemdetails_tbl left join atos_db.brand_tbl on itemdetails_tbl.brand_id = brand_tbl.brand_id left join atos_db.item_tbl on brand_tbl.item_id=item_tbl.item_id where item='" & itemCombobox2.Text & "'" 
     comm = New MySqlCommand(query, conn) 
     sda.SelectCommand = comm 
     sda.Fill(dbDataset) 
     bsource.DataSource = dbDataset 
     compSpecs.modelDatagridview2.DataSource = bsource 
     sda.Update(dbDataset) 
     conn.Close() 
    Catch ex As MySqlException 
     MessageBox.Show(ex.Message) 
    Finally 
     conn.Dispose() 
    End Try 
End Sub 

答えて

0

、フォームの同じインスタンス毎の時間を使用していることを意味します

は、これは私のコードです。フォームを表示するたびにフォームの新しいインスタンスを作成すると、前回から残っているものはありません。

これをやりたくない場合は、再度データを再バインドするだけであれば、データソースからグリッドのバインドを解除する必要はありません。データがデータソースにまだ残っている場合、グリッドはそれを再び表示します。データを取り除きたい場合は、データソースをクリアする必要があります。グリッドはデータソースの内容を表示するので、データソースをクリアするとグリッドもクリアされます。

+0

あなたはそのための構文を提案できますか? –

+0

どのオプションがありますか? – jmcilhinney

関連する問題