2017-05-12 1 views
0

Datagridview-Lasten:My Datagridview, wiederholt sie den gleichen Tisch für 4 mal

Private Sub omplir_taula() 

     obrir_conecció() 
     Taula.DataSource = Nothing 
     Taula.Rows.Clear() 
     Taula.Columns.Clear() 

     da = New OleDbDataAdapter("Select * from Incidencies,Departaments ", myConnection) 
     da.Fill(ds, "Incidencies") 

     Dim view1 As New DataView(tables(0)) 
     source1.DataSource = view1 
     Taula.DataSource = view1 
     Taula.Refresh() 


    End Sub 

Mein Problem ist der Code wiederholt viermal die Datentabelle und ich weiß nicht, warum.

Antwort

0

ich glaube, das Problem ist, die Ihre Suchanfrage:

Select * from Incidencies,Departaments 

Dies wird nur die beiden Tabellen kombinieren, in einem Cartesian product führt. Was Sie tun müssen, ist die beiden Tische in der richtigen Weise zu verbinden.

Beispiel:

Table A: 
Id=1; name='test1' 
Id=2; name='test2' 

Table B: 
Id=1; fkId=1; item='item1' 
Id=2; fkId=2; item='item2' 

Mit Ihrer Anfrage

Select * from A,B 

das Ergebnis wird sein:

Id=1; name='test1'; Id=1; fkId=1; item='item1' 
Id=1; name='test1'; Id=2; fkId=2; item='item2' 
Id=2; name='test2'; Id=1; fkId=1; item='item1' 
Id=2; name='test2'; Id=2; fkId=2; item='item2' 

Mit einem Join:

Select * from A 
Inner Join B on A.Id=B.fkId 

wird zurückgegeben:

Id=1; name='test1'; Id=1; fkId=1; item='item1' 
Id=2; name='test2'; Id=2; fkId=2; item='item2' 
Verwandte Themen