2012-06-01 13 views
5

Ricevo un set di dati con un DataReader e l'assegnazione a una stringa. Ora ho bisogno di riempire le colonne DataTable con i campi della query. Il DataTable è collegato a una griglia per visualizzare i dati riempiti.Lettura dal database e riempimento DataTable

interrogazione è:

strSQL = "SELECT EmpCode,EmpID,EmpName FROM dbo.Employee 

DataTable colonne sono EmpCode, EmpID, EmpName.

Ho bisogno di leggere la query e assegnare alle colonne di DataTable e riempire la tabella. Ho provato come di seguito ma non ottengo l'output corretto,

Me.DtShifts.Tables("NonAllocated").Clear() 
Me.DtShifts.Tables("NonAllocated").Load(dr) 
+0

Si può solo leggere i dati come datatable in primo luogo e rimuovere il DR? –

+0

Ho 110 record e tutti i dati sono riempiti come zero nella tabella in 110 righe .. – Bramenath

+0

Hai controllato il valore nel tuo dr? e come si popola il tuo dr da un datareader? – Nick

risposta

20

L'oggetto di connessione è solo a scopo illustrativo. Il DataAdapter è il bit chiave:

Dim strSql As String = "SELECT EmpCode,EmpID,EmpName FROM dbo.Employee" 
Dim dtb As New DataTable 
Using cnn As New SqlConnection(connectionString) 
    cnn.Open() 
    Using dad As New SqlDataAdapter(strSql, cnn) 
    dad.Fill(dtb) 
    End Using 
    cnn.Close() 
End Using