Ver Mensaje Individual
  #3 (permalink)  
Antiguo 07/09/2005, 09:09
Avatar de Andres95
Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 20 años, 1 mes
Puntos: 38
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