Jump to content
Parcker

Apresentar Tabela

Recommended Posts

Parcker

Boas. Queria saber uma maneira de apresentar uma tabela inteira numa form. Pode ser com qualquer ferramenta como o datagridview. Eu tenho uma maneira que deixo aqui:

Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentClick

        Dim Utilizador As Integer
        Dim Nome As String
        Dim Sexo As String
        Dim Morada As String
        Dim Contacto As Integer
        Utilizador = DataGridView1.Rows(e.RowIndex).Cells(0).Value
        Nome = DataGridView1.Rows(e.RowIndex).Cells(1).Value
        Sexo = DataGridView1.Rows(e.RowIndex).Cells(2).Value
        Morada = DataGridView1.Rows(e.RowIndex).Cells(3).Value
        Contacto = DataGridView1.Rows(e.RowIndex).Cells(4).Value

    End Sub

    Private Sub ConsultarUtilizadores_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        DataGridView1.AutoSizeColumnsMode = _
        DataGridViewAutoSizeColumnsMode.AllCells
        DataGridView1.AllowUserToAddRows = False
        DataGridView1.AllowUserToDeleteRows = False
        DataGridView1.EditMode = _
        DataGridViewEditMode.EditProgrammatically
        Dim adapter_utilizadores As New  _
        SigaDataSetTableAdapters.UtilizadoresTableAdapter()
        Dim tab_utilizadores As New SigaDataSet.UtilizadoresDataTable
        adapter_utilizadores.Fill(tab_utilizadores)
        Dim coluna As DataColumn
        For Each coluna In tab_utilizadores.Columns
            DataGridView1.Columns.Add(coluna.ColumnName, _
            coluna.ColumnName)
        Next
        Dim idx_linha As Integer
        idx_linha = 0
        Dim valor
        Dim linha As DataRow
        For Each linha In tab_utilizadores.Rows
            Dim linha_datagrid As New DataGridViewRow
            DataGridView1.Rows.Add(linha_datagrid)
            Dim idx_coluna As Integer
            idx_coluna = 0
            For Each coluna In tab_utilizadores.Columns
                valor = tab_utilizadores.Rows(idx_linha).Item(idx_coluna)
                If IsDate(valor) Then valor = _
                Microsoft.VisualBasic.FormatDateTime(valor, _
                DateFormat.ShortDate)
                DataGridView1.Rows(idx_linha).Cells(idx_coluna).Value = valor
                idx_coluna = idx_coluna + 1
            Next
            idx_linha = idx_linha + 1
        Next

    End Sub

Eu não quero usar este código porque tenho de utilizar DataSet's. Não gosto muito daquele método. Alguém me arranja um método diferente sff?

Obrigado

Share this post


Link to post
Share on other sites
Caça

Eu não quero usar este código porque tenho de utilizar DataSet's. Não gosto muito daquele método.

É simples e eficaz..

Em alternativa podes usar outros tipos de colecções(List(Of Type), etc.), mas caso não estejas a utilizar Entiti Framework ou Data Classes, vais ter ainda mais trabalho


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
bioshock

Estás a utilizar o wizard que o Visual Studio oferece, caso faças tudo via código, quanto a mim terás uma maior percepção do código, é isso que pretendes? (Devo-te dizer que os Datasets também serão usados!)

Exemplo com base de dados Access 2003:

        Dim Connection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Application.StartupPath & "\Teste.mdb")
        Dim Query As String = "SELECT * FROM Clientes"
        Dim DTAdapter As New OleDbDataAdapter(Query, Connection)
        Dim DTSet As New DataSet
        DTAdapter.Fill(DTSet , "Clientes")
        Me.DataGridView1.DataSource = DTSet.Tables("Clientes")

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.