Hola... te hice un pequeño ejemplo usando un boton y un datagrid... solo haz copy and paste para que veas como funciona (obviamente cambias tu conectionstring y tu query) creo que ésto es lo que buscas.
Cita: Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim dt As New DataTable
Dim dr As DataRow
Dim cols As Int16
Dim iTotal As Integer
'Aqui llenas la primera columna que traes desde tu BD
Dim oConn As New SqlConnection(ConfigurationSettings.AppSettings("c onnectionString"))
Dim cmd As New SqlCommand("Select top 5 * from Customer", oConn)
oConn.Open()
Dim SQLdr As SqlDataReader = cmd.ExecuteReader
Dim dc As New DataColumn("Usuario", GetType(String))
dt.Columns.Add(dc)
Do While SQLdr.Read
dr = dt.NewRow
dt.Rows.Add(dr)
dr.Item(0) = SQLdr("Company")
iTotal += 1 'Cuento el total de registros
Loop
SQLdr.Close()
oConn.Close()
'Creo las columnas para las fechas
'Leo el mes actual para colocar el total de días
Dim iDays As Integer = Now.DaysInMonth(Now.Year, Now.Month)
For cols = 1 To iDays
dc = New DataColumn("Día " & cols, GetType(String))
dt.Columns.Add(dc)
Next
'Obtengo el día actual
'Le resto 1 para que en mi funcion empiece
'con el primer día del mes
Dim iFirstDay As Integer = Now.Day - 1
For i As Integer = 1 To iDays
For Each dr In dt.Rows
dr.Item(i) = ReturnDate(iFirstDay)
Next
iFirstDay -= 1
Next
DataGrid1.DataSource = dt
DataGrid1.DataBind()
End Sub
Private Function ReturnDate(ByVal index As Integer) As String
Return Now.AddDays(-index).ToString("dd/MM/yyyy")
End Function
Con éste code lo que hace es colocar en la primera columna los datos que te traes de tu BD y en las siguientes columnas coloca la fecha..desde el día primero hasta el último día del mes actual.
Espero que te sirva.
Salu2