2013-08-09 16 views
6

Im un po 'bloccato su un codice che im scritturaRiempire una DataGridView da SQLReader

Uno schema è che io sto leggendo alcuni dati in da un database SQL e wantint per visualizzarlo in un DataGridView in un modulo. Ho confermato che ci sono dati che vengono restituiti dal database ma non sono sicuro del motivo per cui questo non si presenta. Ho seguito una serie di tutorial da internet, ma finora non ho lavorato

Ecco il mio codice

Private Sub PopulateGrid() 
    Dim Con As New SqlClient.SqlConnection 
    Dim strCon As String = CropTrackMod.strConn 
    Dim strCommand As String = "select * from customer" 


    Try 
     Con.ConnectionString = strCon 
     Dim Cm As New SqlClient.SqlCommand(strCommand, Con) 
     Con.Open() 
     Dim reader As SqlClient.SqlDataReader = Cm.ExecuteReader() 

     'test to confirm data received 
     reader.Read() 
     MsgBox(reader.Item("ContactName")) 


     DataGridView1.AutoGenerateColumns = True 
     DataGridView1.DataSource = reader 
     DataGridView1.Refresh() 



    Catch ex As Exception 
     MessageBox.Show(ex.Message, "Error") 

    Finally 
     If Con.State = ConnectionState.Open Then 
      Con.Close() 
     End If 
    End Try 

End Sub 

ho anche cercato di attuare un DataTable, ma riceverà un errore di conversione del tipo di dati qualsiasi l'aiuto sarebbe apprezzato

grazie ragazzi

+0

ho appena riuscito a risolvere il problema mediante l'attuazione di un DataTable. Ho superato il lettore al DataTable e poi assegnato il DataSource del dataridview al DataTable – PowerMan2015

+0

non vedo il motivo per cui la questione è stata downvoted, soprattutto perché non v'è alcuna spiegazione per il downvote ... – NobodysNightmare

+0

grazie per il cambio rep, molto apprezzato – PowerMan2015

risposta

12

non è possibile associare un DataReader direttamente a un datagridview in WinForms. Invece si potrebbe caricare un DataTable con il vostro lettore e assegnare il datatable all'origine dati del DataGridView

Dim dt = new DataTable() 
dt.Load(reader) 
DataGridView1.AutoGenerateColumns = True 
DataGridView1.DataSource = dt 
DataGridView1.Refresh() 
+0

dispiace per il ritardo di risposta, sono stato in vacanza si HEP è apprezzato – PowerMan2015

+0

grande soluzione, grazie – destinydz

Problemi correlati