Tengo un ejemplo...
pero no recuerdo de donde lo baje... de hecho no lo encontraba, ya estaba en mi papelera...
De cualquier forma copio la referencia del nombre agregada por el autor...
Esta es la parte central....se tiene un dataset en memoria y apartir de el mediante checkboxes se seleccionan los campos a listar en un grid...
Código:
#Region "By Sergioman"
Private miDataSet As DataSet
'Llenar el dataSEt
Private Sub LlenarDataSet()
'cadena de consulta
Dim strQuery As String = "SELECT * FROM Authors"
'string of connection in my machine
Dim strCn As String = "Data Source=(local); database=pubs; user id=sa; password=sa"
Dim dA As New SqlDataAdapter(strQuery, strCn)
'instanciando al dataSet
miDataSet = New DataSet()
'enlazando al dataset con el adapter
Try
dA.Fill(miDataSet, "miTabla")
Catch err As DataException
MsgBox("hubo un error: " & err.Message.ToString())
End Try
End Sub
'Mostrar solo algunas columnas de un DataSet
Private Function FiltrarDataSet() As DataSet
Dim i As Integer
Dim tempDataSet As New DataSet()
'la columan que sera borrada
Dim myColumn As DataColumn
Dim strColumn As String
'recuperando el dataset
'se copia porque si no lo referencia
tempDataSet = Me.miDataSet.Copy()
'viendo que filas se selecciono
With Me.LstColumnas
For i = 0 To .Items.Count - 1
'viendo que Check estan selecionados
If Not .GetItemChecked(i) Then
'recuperando el nombre
strColumn = .GetItemText(.Items.Item(i))
'recuperando la columan del data set
myColumn = tempDataSet.Tables(0).Columns(strColumn)
'ahora si borrando la columan del dataset
tempDataSet.Tables(0).Columns.Remove(myColumn)
End If
Next
End With
Return tempDataSet
End Function
#End Region
Aca va el llenado del checkedlistbox donde se listan los campos para poder elegirlos...
Código:
Private Sub cmdShowColumnas_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdShowColumnas.Click
'numero de columnas
Dim nCol As Integer
Dim i As Integer
Dim nameCol As String
nCol = miDataSet.Tables("miTabla").Columns.Count
'llnar el checkd
For i = 0 To (nCol - 1)
nameCol = miDataSet.Tables("miTabla").Columns.Item(i).Caption
LstColumnas.Items.Add(nameCol)
Next
End Sub
De hecho tiene un errorcillo (que no corregi) ya que en algunas ocasiones se hace referencia a objetos no instanciados... seria cuestion de aplicar la respectiva validacion y listo...
Espero te sea de utuilidad