Ti posto un esempio di codice di come creao la tabella via programma e di come una tabella del db viene associata ad essa:
in un modulo io dichiaro quanto segue:
rem creazione tabella stampaetichetta
Public Function stampaetichetta() As DataTable
Dim mytable As DataTable = New DataTable("stampaetichetta")
Dim mycolumn As DataColumn = New DataColumn
mycolumn.DataType = System.Type.GetType("System.String")
mycolumn.ColumnName = "codice"
mytable.Columns.Add(mycolumn)
mycolumn = New DataColumn
mycolumn.DataType = System.Type.GetType("System.String")
mycolumn.ColumnName = "titolo"
mytable.Columns.Add(mycolumn)
mycolumn = New DataColumn
mycolumn.DataType = System.Type.GetType("System.String")
mycolumn.ColumnName = "nominativo"
mytable.Columns.Add(mycolumn)
mycolumn = New DataColumn
mycolumn.DataType = System.Type.GetType("System.String")
mycolumn.ColumnName = "indirizzo"
mytable.Columns.Add(mycolumn)
stampaetichetta = mytable
End Function
Fatto questo nella tua applicazione se desideri passare i dati di una tabella del db a questa datatable devi scrivere così:
Dim ds As DataSet = New DataSet
Dim mytable As DataTable
Dim myrow As DataRow
mytable = stampaetichetta()
sql = "SELECT * FROM prova WHERE codice=@par1"
cmd.Parameters.Add("@par1", SqlDbType.VarChar).Value = 1
cmd.Connection = db
cmd.CommandText = sql
cmd.CommandType = CommandType.Text
dr = cmd.ExecuteReader
If dr.Read Then
myrow = mytable.NewRow()
myrow("codice") = dr.GetSqlString(0).Value
myrow("titolo") = dr.GetSqlString(1).Value
myrow("nominativo") = dr.GetSqlString(2).Value
myrow("indirizzo") = dr.GetSqlString(3).Value
mytable.Rows.Add(myrow)
End If
dr.Close()
cmd.Parameters.Clear()
ds.Tables.Add(mytable)
cmd.Dispose()
Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/