2016-05-16 44 views
0

我使項目有combobox項目時,我從combobox選擇項目它是在datagridview從具有不同列的同一個表格中查看數據 問題是,當我從組合框datagrid選擇項目查看數據當我選擇花葯項目的形式組合框的DataGrid查看新列與列老datagridview沒有清除數據與組合框vb.net

這是我的代碼:

Dim sqlconn As New SqlConnection(con) 
Dim comm As New SqlCommand 
'Dim comm2 As New SqlCommand 
Dim sql As String = "select * from entsab" 
Dim adpt As New SqlDataAdapter(Sql, con) 
Dim ds As New DataSet() 
Dim dr As SqlDataReader 
Dim dr2 As SqlDataReader 
Dim dt As New DataTable 
Private Sub ComboBox2_SelectedValueChanged(sender As Object, e As EventArgs) Handles ComboBox2.SelectedValueChanged, ComboBox3.SelectedValueChanged 
    Select Case ComboBox2.SelectedItem 
     Case ComboBox2.Items.Item(0) '1 
      dt.Clear() 
      Dim comm2 As New SqlCommand 
      comm2.CommandText = Nothing 
      DGV1.Refresh() 
      comm2.CommandText = "select l1,sub_code,sub_name,houres from sub_with_sct where sction_ID=1" 
      comm2.Connection = sqlconn 
      sqlconn.Open() 
      dr2 = comm2.ExecuteReader 
      dt.Load(dr2) 
      DGV1.AutoGenerateColumns = True 
      DGV1.DataSource = dt 
      DGV1.Refresh() 
      sqlconn.Close() 
      DGV1.Visible = True 
      comm2.Dispose() 
     Case ComboBox2.Items.Item(1) 
      dt.Clear() 
      Dim comm2 As New SqlCommand 
      DGV1.DataSource = Nothing 
      DGV1.Columns.Clear() 
      comm2.CommandText = Nothing 
      DGV1.Refresh() 
      comm2.CommandText = "select l2,sub_code,sub_name,houres from sub_with_sct where sction_ID=1" 
      comm2.Connection = sqlconn 
      sqlconn.Open() 
      dr2 = comm2.ExecuteReader 
      dt.Load(dr2) 
      DGV1.AutoGenerateColumns = True 
      DGV1.DataSource = dt 
      DGV1.Refresh() 
      sqlconn.Close() 
      DGV1.Visible = True 
      comm2.Dispose() 
    End Select 
End Sub 

當我選擇第一項:

enter image description here

當我選擇第二項:

enter image description here

回答

0

嘗試添加:DGV1.Columns.Clear()你的第一個 情況。並在您的所有情況下使用dt= New DataTable()而不是dt.Clear()

+0

它的作品謝謝你 –